Apakah mungkin untuk meneruskan-mendeklarasikan fungsi dengan Python? Saya ingin mengurutkan daftar menggunakan cmpfungsi 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_configsmetode setelah doa. Gagal dengan kesalahan ini:
NameError: name 'cmp_configs' is not defined
Apakah ada cara untuk "mendeklarasikan" cmp_configsmetode 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_conditiondan end_resulttelah ditentukan sebelumnya.
Apakah satu-satunya solusi untuk mengatur ulang kode dan selalu meletakkan definisi sebelum pemanggilan?