X
Küresel değişkenlere referans vermeyen birkaç satır Python kodu yazın , öyle ki
def method():
X
print(a)
method()
yazdırıyor 1
ama
def method():
X
X
print(a)
method()
yazdırır 2
.
Yani, bir stickler olmaktan nefret ediyorum, ama aslında Python'daki küresel değişkenler gibi görünüyor vars
ve locals
:
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()
Ayrıca, insanlar bunun gibi bulmacalar için objektif kazanma kriterleri görmek istiyor gibi görünüyor. Kod uzunluğu gerçekten burada hissetmiyor, bu yüzden belki de kodun çeşitli yeni özellikleri için bir brownie noktaları sistemi yapabiliriz? Bunların ne olabileceğinden tam olarak emin değilim ama işte bir başlangıç:
- Gerçekten küresel olmayanlar için +1 (hayır
vars
veyalocals
) - Belirli bir tekniği ilk yayınlayan kişi olarak +1
- Gönderilen en kısa çözüm için +1
- Tek bir Python deyimi içeren bir çözüm için +1
- Sözcüksel sınırlar dışında katılmak gibi ilginç "kesmek" için +1
- İstisnaları kullanmadığınız için +1
Ve daha fazlasını düşünebiliyorsanız, listeye eklemek için bu soruyu düzenleyebilirsiniz.
Bu sorun istisnaları kullanmadan çözülebilir ve benzeri globalsi kullanmadan vars
ve locals
? Bunun tam olarak nasıl olduğunu henüz çözememiş olmama rağmen şüphelenebiliyorum ...
X
, ancak başka seçenekler de vardır.