Python'da bir işlevi ileri bildirmek mümkün mü? Belirtilmeden cmp
önce kendi işlevimi kullanarak bir listeyi sıralamak istiyorum .
print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
Kodumu cmp_configs
çağırmadan sonra yöntemin tanımını koymak için düzenledim . Bu hatayla başarısız olur:
NameError: name 'cmp_configs' is not defined
cmp_configs
Kullanılmadan önce yöntemi "ilan etmenin" bir yolu var mı ? Kodumu daha temiz gösterir mi?
Bazı insanların bana sadece kodumu yeniden düzenlemek gerektiğini söylemek için cazip olacağını varsayıyorum, bu yüzden bu sorun yok. Bununla birlikte, örneğin bazı özyineleme biçimlerini uygularken bunun muhtemelen kaçınılmaz olduğu durumlar vardır. Bu örneği beğenmediyseniz, bir işlev bildirmenin gerçekten gerekli olduğu bir vakam olduğunu varsayın .
Python'da bir fonksiyonun ileri bildirilmesinin gerekli olduğu bu durumu düşünün:
def spam():
if end_condition():
return end_result()
else:
return eggs()
def eggs():
if end_condition():
return end_result()
else:
return spam()
Nerede end_condition
ve end_result
daha önce tanımlanmış.
Kodu yeniden organize etmek ve her zaman çağrılardan önce tanımları koymak için tek çözüm mü?