Jak uzyskać odwołanie do modułu z tego modułu? Jak mogę również uzyskać odniesienie do pakietu zawierającego ten moduł?
python
self-reference
Ram Rachum
źródło
źródło
Odpowiedzi:
źródło
Jeszcze jedna technika, która nie importuje modułu sys i prawdopodobnie - zależy od twojego gustu - prostsza:
Pamiętaj, że nie ma importu. Python importuje każdy moduł tylko raz.
źródło
Jeśli masz klasę w tym module, wówczas
__module__
właściwością klasy jest nazwa modułu klasy. W ten sposób możesz uzyskać dostęp do modułu za pośrednictwemsys.modules[klass.__module__]
. Działa to również w przypadku funkcji.źródło
__module__
właściwość nie jest modułem, ale ciągiem znaków; dlatego błądinspect.getabsfile(func.__module__)
kończy się błędem „ TypeError: 'os' nie jest modułem, klasą, metodą, funkcją, elementem śledzenia, ramką ani obiektem kodu ”; podczas gdyinspect.getabsfile(sys.modules[o.__module__])
wydaje się minąć.Możesz uzyskać nazwę bieżącego modułu za pomocą
__name__
Opis modułu można znaleźć w
sys.modules
słowniku.Zobacz dokumentację Pythona
źródło
Możesz przekazać go z zewnątrz:
Nie jest to idealne rozwiązanie, ale działa w moim obecnym przypadku użycia.
źródło