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

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • The Verge

    The Verge

    8 AĞUSTOS 2006