PEP 8 mengatakan:
- Impor selalu diletakkan di bagian atas file, tepat setelah komentar modul dan docstrings, dan sebelum global modul dan konstanta.
Kadang-kadang, saya melanggar PEP 8. Beberapa kali saya mengimpor barang di dalam fungsi. Sebagai aturan umum, saya melakukan ini jika ada impor yang hanya digunakan dalam satu fungsi.
Ada opini?
EDIT (alasan saya merasa mengimpor fungsi bisa menjadi ide yang bagus):
Alasan utama: Ini dapat membuat kode lebih jelas.
- Saat melihat kode fungsi, saya mungkin bertanya pada diri sendiri: "Apa itu fungsi / kelas xxx?" (xxx digunakan di dalam fungsi). Jika saya memiliki semua impor saya di bagian atas modul, saya harus melihat ke sana untuk menentukan apa itu xxx. Ini lebih merupakan masalah saat menggunakan
from m import xxx
. Melihatm.xxx
fungsinya mungkin memberi tahu saya lebih banyak. Tergantung pada apam
itu: Apakah itu modul / package (import m
) tingkat atas yang terkenal ? Atau apakah itu sub-modul / paket (from a.b.c import m
)? - Dalam beberapa kasus, memiliki informasi tambahan ("Apa itu xxx?") Yang dekat dengan tempat xxx digunakan dapat membuat fungsi lebih mudah dipahami.