Tulis beberapa baris kode Python X
,, yang tidak merujuk variabel global apa pun, seperti itu
def method():
X
print(a)
method()
mencetak 1
tetapi
def method():
X
X
print(a)
method()
cetakan 2
.
Jadi, saya benci menjadi ngotot, tetapi sepertinya vars
dan locals
sebenarnya adalah variabel global dalam Python:
def test_global_1():
global vars, locals
vars = lambda: 2
locals = lambda: 3
def test_global_2():
print(vars())
print(locals())
test_global_1()
test_global_2()
Juga, sepertinya orang ingin melihat kriteria kemenangan yang objektif untuk teka-teki seperti ini. Panjang kode tidak terasa di sini, jadi mungkin kita bisa membuat sistem poin brownies untuk berbagai fitur baru kode? Saya tidak yakin persis apa ini tetapi di sinilah awalnya:
- +1 untuk benar-benar tanpa global (tidak
vars
ataulocals
) - +1 karena menjadi orang pertama yang memposting teknik tertentu
- +1 untuk solusi terpendek yang diposting
- +1 untuk solusi yang hanya melibatkan satu pernyataan Python
- +1 untuk "retasan" yang menarik seperti bergabung di lexical non-boundaries
- +1 karena tidak menggunakan pengecualian
Dan jika Anda dapat memikirkan lebih lanjut, Anda dapat mengedit pertanyaan ini untuk ditambahkan ke daftar.
Bisakah masalah ini diselesaikan tanpa menggunakan pengecualian dan tanpa menggunakan global seperti vars
dan locals
? Saya menduga itu bisa, meskipun saya belum tahu persis bagaimana ...
X
, tetapi ada opsi lain.