SORU
26 NİSAN 2010, PAZARTESİ


X None` x Hiçbiri değildir `veya`Python`?

Her zaman daha açık olmak için if not x is None Sürüm düşündüm, ama Google if x is not None kullanmak style guide ima (bu alıntı dayanarak). Orada herhangi bir küçük bir performans farkı (sanmıyorum) ve gerçekten uygun (diğeri de Kongre için kesin bir kazanan yapar)?* olmayan herhangi bir durum

*Singleton yerine None sadece bahsediyorum.

...karşılaştırmak gibi tekiz Yok. Kullanın ya da değil.

CEVAP
26 NİSAN 2010, PAZARTESİ


Performans farkı yok, hepsi aynı bayt kodu derleme:

Python 2.6.2 (r262:71600, Apr 15 2009, 07:20:39)
>>> import dis
>>> def f(x):
...    return x is not None
...
>>> dis.dis(f)
  2           0 LOAD_FAST                0 (x)
              3 LOAD_CONST               0 (None)
              6 COMPARE_OP               9 (is not)
              9 RETURN_VALUE
>>> def g(x):
...   return not x is None
...
>>> dis.dis(g)
  2           0 LOAD_FAST                0 (x)
              3 LOAD_CONST               0 (None)
              6 COMPARE_OP               9 (is not)
              9 RETURN_VALUE

Üslup, not x is y uzak durmaya çalışırım. Derleyici her zaman not (x is y) insan bir okuyucu yanlış anlayacağı gibi muamele edecek olsa da (not x) is y olarak inşa. Eğer x is not y sonra yazarsam belirsizlik yok.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christian Atlas

    Christian At

    26 Mart 2009
  • HER0R

    HER0R

    16 Aralık 2007
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012