Python -- Hiçbiri, ve geri dönüşü hiç geri dönüş
Üç işlevi göz önünde bulundurun:
def my_func1():
print "Hello World"
return None
def my_func2():
print "Hello World"
return
def my_func3():
print "Hello World"
Onlar Yok dönmek için görünür. Bu fonksiyonlardan dönen değeri nasıl davranması arasında herhangi bir fark var mı? Diğer karşı bir tercih için herhangi bir sebep var mı?
CEVAP
Gerçek davranışı üzerinde, fark yok. Onlar None
dön. Ancak, bir kez ve tüm bunlar için yer var.
Aşağıdaki talimatları temelde nasıl farklı yöntemler kullanılmalıdır (ya da en azından nasıl olduğumu öğretti kullanılmalıdır), ama onlar değil mutlak kurallar bu yüzden sen-ebilmek karıştırmak onları düşünüyorsan gerekli.
return None
kullanarak.
Bu işlev gerçekten de daha sonra kullanmak için bir değer döndürmek için bir anlamı olduğunu söyler, ve bu durumda None
döndürür. Bu değer None
o zaman başka bir yerde kullanılabilir. return None
hiç değilse değerler işlevinden başka Olası dönüş halinde orada kullanılır.
Aşağıdaki örnekte, eğer kişi belirli bir insan ise kişinin anne dönüş. Eğer insan değilse, biz "insan" bir anne (hadi ya o kadar hayvan değil sanırım) yok. beri None
dönüş
def get_mother(person):
if is_human(person):
return person.mother
else:
return None
return
kullanarak.
Bu döngüler break
aynı nedenle kullanılır. Dönüş değeri, bir önemi yok ve sen sadece tüm işlevi çıkmak istiyorum. Bunu o kadar sık gerek yok bile tho bazı yerlerde son derece yararlıdır.
15 tutuklu var ve bunlardan biri bir bıçak olduğunu biliyoruz. Biz birer mahkum ile bir bıçak varsa kontrol etmek için döngü. Eğer bir bıçak kişiyle çarparsak, sadece tek bir bıçak ve onay mahkumların geri kalanı neden yok hayır bildiğimiz işlev neden çıkış yapabiliriz. Eğer bir bıçak ile mahkum varım eğer doğru değilse, bir uyarı yükseltir. Bu çok farklı şekillerde yapılabilir ve return
kullanarak muhtemelen en iyi yol değildir, ama sadece bir fonksiyon çıkmak için return
nasıl kullanıldığını göstermek için bir örnek.
def find_prisoner_with_knife(prisoners):
for prisoner in prisoners:
if "knife" in prisoner.items:
prisoner.move_to_inquisition()
return # no need to check rest of the prisoners nor raise an alert
raise_alert()
Not: asla dönüş değeri yakalamış değildir beri var = find_prisoner_with_knife()
, yapmalısın.
Hayır kullanarak dönün.
Bu da None
ama bu değer kullanılan veya yakalanmak anlamına gelmez dönecektir. Sadece işlevini başarıyla sona erdi demektir. Temel olarak C ya da Java gibi dillerde void
19 *aynı işlevleri.
Aşağıdaki örnekte, kişinin annesinin adı ve işlevi çıkar başarıyla tamamladıktan sonra çıktık.
def set_mother(person, mother):
if is_human(person):
person.mother = mother
Not: asla dönüş değeri yakalamış değildir beri var = set_mother(my_person, my_mother)
, yapmalısın.
Python birden çok geri dönüş değeri gö...
'#_=_' Dönüş için Facebook G...
Nasıl Python ile birden fazla değer ge...
() geri dönüş bildirimi vs exit main()...
Geri eğer Sözlük anahtarı mevcut değil...