SORU
10 Temmuz 2013, ÇARŞAMBA


Tek bir değer atayarak Python/İPython yorumlayıcı _

ipython Python 2.7 bu fonksiyon oluşturdum:

def _(v):
    return v

eğer _(somevalue), ararsam daha sonra _ = somevalue olsun.

in[3]: _(3)
out[3]: 3
in[4]: print _
out[4]: 3

İşlevi kayboldu! Eğer _(4) ararsam alıyorum:

TypeError: 'int' object is not callable`

Neden? Bu işlev, yanlış olan ne?

CEVAP
10 Temmuz 2013, ÇARŞAMBA


Python yorumlayıcısı _ son ifadenin değerini atar.

Bu davranış REPL interpreter sınırlı ve interaktif kodlama oturumları yardımcı olmak için tasarlanmıştır:

>>> import math
>>> math.pow(3.0, 5)
243.0
>>> result = _
>>> result
243.0

standartPython yorumlayıcısı eğer kendinize bir şey atarsanız, kullanıcı tanımlı değerleri ayaklar altına değil tabi, bazı uzunluğu için de geçerlibaşka_ sonra tercüman (teknik olarak konuşursak, _ variable is a __builtin__ attribute, kendi atamalarını 'normal' bütünsel). bunun üzerine yazmaz Ama standart Python yorumlayıcısı kullanarak değil; İPython kullanıyorsanız ve bu tercüman olup olmadığını kontrol edin.

documents this behaviour explicitly İPython:

GLOBAL değişkenler her zaman var aşağıdaki (yani bunların üzerine yok!):

  • [_] (tek çizgi) : depolar önceki çıkış, Python varsayılan tercüman gibi.

[...]

Python dışında tercüman _ Kongre çevrilebilir metin işlevi (gettext module; dış araçları, o işlev için bak çevrilebilir dizeleri ayıklamak için) adı olarak kullanılır.

Döngüler, atama bir hedef olarak _ kullanarak bu değer; *20 örneğin* 5 rastgele bir kayan noktalı değer listesini oluşturmak için göz ardı edeceğini kod okuyucuları söyler.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Motor Trend Channel

    Motor Trend

    11 Mart 2006
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010