Apakah mungkin untuk meneruskan-mendeklarasikan fungsi dengan Python? Saya ingin mengurutkan daftar menggunakan cmp
fungsi saya sendiri sebelum dideklarasikan.
print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
Saya telah mengatur kode saya untuk memasukkan definisi cmp_configs
metode setelah doa. Gagal dengan kesalahan ini:
NameError: name 'cmp_configs' is not defined
Apakah ada cara untuk "mendeklarasikan" cmp_configs
metode sebelum digunakan? Itu akan membuat kode saya terlihat lebih bersih?
Saya berasumsi bahwa beberapa orang akan tergoda untuk memberi tahu saya bahwa saya harus mengatur ulang kode saya sehingga saya tidak memiliki masalah ini. Namun, ada beberapa kasus di mana hal ini mungkin tidak dapat dihindari, misalnya ketika menerapkan beberapa bentuk rekursi. Jika Anda tidak menyukai contoh ini, asumsikan bahwa saya memiliki kasus di mana itu benar - benar perlu untuk maju menyatakan suatu fungsi.
Pertimbangkan kasus ini di mana penerusan maju sebuah fungsi akan diperlukan dalam Python:
def spam():
if end_condition():
return end_result()
else:
return eggs()
def eggs():
if end_condition():
return end_result()
else:
return spam()
Di mana end_condition
dan end_result
telah ditentukan sebelumnya.
Apakah satu-satunya solusi untuk mengatur ulang kode dan selalu meletakkan definisi sebelum pemanggilan?