SORU
9 ŞUBAT 2009, PAZARTESİ


Python 2.x'in ve kara mayınları yakaladım

Benim sorunun amacı Python ile bilgi birikimim güçlendirmek ve hataları ve sürprizleri bilerek içeren, daha iyi bir görüntü elde etmektir. Belirli şeyleri tutmak için, sadece CPython tercüman ilgileniyorum.

Bir şey PHP landminesbenim öğrendi benzer arıyorum cevapları gayet iyi tanıyorum ama sevgili olmadık yerde soru sınırda dehşet vericiydi.

Güncelleme: Görünüşe göre bir belki iki kişi zaten kısmen Yığın Taşması dışında Cevaplanan bir soru sordum o kadar da mutsuz. Uzlaşma buraya URL olarak http://www.ferg.org/projects/python_gotchas.html

Bir veya iki cevap burada zaten site yukarıda başvurulan üzerine yazılmış ne kadar orijinal olduğunu unutmayın.

CEVAP
10 ŞUBAT 2009, Salı


Varsayılan bağımsız değişkenleri ifadeler fonksiyonu tanımlandığında hesaplanmıştırdeğildeniyor.

Örnek:bir bağımsız değişken geçerli zaman: varsaymak düşünün

>>>import time
>>> def report(when=time.time()):
...     print when
...
>>> report()
1210294387.19
>>> time.sleep(5)
>>> report()
1210294387.19

when argümanı değiştirmez. İşlevi tanımlarken değerlendirilir. Uygulama yeniden başlatılana kadar değişmeyecek.

Strateji:eğer bu None varsayılan değişkenler üzerinde gezip gördüğün zaman işe yarar bir şeyler yap o zaman olmaz:

>>> def report(when=None):
...     if when is None:
...         when = time.time()
...     print when
...
>>> report()
1210294762.29
>>> time.sleep(5)
>>> report()
1210294772.23

Egzersiz:anlaşılır olduğundan emin olun: bu neden oluyor?

>>> def spam(eggs=[]):
...     eggs.append("spam")
...     return eggs
...
>>> spam()
['spam']
>>> spam()
['spam', 'spam']
>>> spam()
['spam', 'spam', 'spam']
>>> spam()
['spam', 'spam', 'spam', 'spam']

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • beautyexchange

    beautyexchan

    4 EYLÜL 2006
  • Floortile83

    Floortile83

    16 Ocak 2010
  • Tube Time

    Tube Time

    14 Mayıs 2013