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
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.
Nasıl Python ile birden fazla değer ge...
's re Python kullanmaya değer mi....
Python bir listeden bir değer her yere...
Python ile bir listeden benzersiz değe...
Sadece Python herhangi bir değer atama...