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

  • EminemVEVO

    EminemVEVO

    12 Mayıs 2009
  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • steven johns

    steven johns

    11 Mart 2011