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_configsKullanı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_conditionve end_resultdaha önce tanımlanmış.
Kodu yeniden organize etmek ve her zaman çağrılardan önce tanımları koymak için tek çözüm mü?