Gerçekten null atama fikir gibi - ama beklenmedik bir yan etkisi var: kim kod çoğunlukla Python olanlar için
>>> print divmod(5, 3)
(1, 2)
>>> x, null = divmod(5, 3)
>>> print null
2
, bu muhtemelen bir sorun değildir: boş sadece olmalı kadar önemsiz bir değer _. Ancak, Javascript gibi diğer diller arasında geçiş yapıyorsanız, yanlışlıkla, Yok'la null ile bir karşılaştırma yapmak tamamen mümkündür. Üste | Bilinmeyen bir değişkenle karşılaştırmakla ilgili olağan yanılgıyı tükürmekten ziyade, Python sadece sessizce kabul eder ve şimdi tamamen beklemediğiniz doğru ve yanlış koşullar elde edersiniz. Bir saat için kod ve yanlış anlayamazsınız, aniden sana çarpana ve bir aptal gibi hissedene kadar.
bariz düzeltme çalışmıyor, ya: gerçekten hayal kırıklığı
>>> x, None = divmod(5, 3)
File "<stdin>", line 1
SyntaxError: cannot assign to None
.... Python (ve gezegen üzerindeki her dili) bakılmaksızın iade kaç değişkenler arasında, örtülü atılır olmak parametrelerin tüm sağlar:
>>> divmod(5, 3)
... ama açıkça parametreleri atmadan Bunları hiçbirine atayarak izin verilmiyor mu?
Python yorumlayıcısının aptalca bir sonuçtan ziyade, bir sözdizimi hatası yerine, hiçbiri bir sözdizimi hatası olarak atamayı karakterize etmek için bir tür aptalca hissediyor. Bunun için mantıklı düşünen var mı?
"Çıktı akışına gönder" ile ne demek istiyorsunuz? – BrenBarn
Sadece global kapsamdaki fn() 'yi değerlendirmek 5 değerini" yazdırabilir ". – PascalVKooten
Bu yalnızca etkileşimli yorumlayıcıda geçerlidir. Bir dosyayı bir komut dosyası olarak çalıştırırsanız, hiçbir şey etkilemez. Bir etkileşimli oturumda çıktıyı bastırma ihtiyacının, sahip olduğunuz çözümden daha fazlasını garanti etmek için yeterince büyük bir anlaşma olduğunu düşünmüyorum. – BrenBarn