Bagaimana saya bisa mendapatkan referensi ke modul dari dalam modul itu? Juga, bagaimana saya bisa mendapatkan referensi ke paket yang berisi modul itu?
python
self-reference
Ram Rachum
sumber
sumber
Jawaban:
sumber
Satu lagi teknik, yang tidak mengimpor modul sys, dan bisa dibilang - tergantung selera Anda - lebih sederhana:
Sadarilah tidak ada impor. Python mengimpor setiap modul hanya sekali.
sumber
Jika Anda memiliki kelas dalam modul itu, maka
__module__
properti kelas adalah nama modul kelas tersebut. Dengan demikian Anda dapat mengakses modul melaluisys.modules[klass.__module__]
. Ini juga berfungsi untuk fungsi.sumber
__module__
properti bukan modul, tetapi sebuah string; dengan demikianinspect.getabsfile(func.__module__)
gagal dengan " TypeError: 'os' bukan modul, kelas, metode, fungsi, traceback, bingkai, atau objek kode "; sementarainspect.getabsfile(sys.modules[o.__module__])
tampaknya berlalu.Anda bisa mendapatkan nama modul saat ini menggunakan
__name__
Referensi modul dapat ditemukan di
sys.modules
kamus.Lihat dokumentasi Python
sumber
Anda bisa meneruskannya dari luar:
Tidak ideal tetapi berfungsi untuk kasus penggunaan saya saat ini.
sumber