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

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • friendz.net

    friendz.net

    29 EKİM 2010
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006