W poniższej hierarchii znajduje się wygodny i uniwersalny sposób odwoływania się do top_package przy użyciu ogólnego terminu we wszystkich plikach .py poniżej? Chciałbym mieć spójny sposób importowania innych modułów, aby nawet gdy nazwa "top_package" zmieniła się, nic nie pęka.Jak odwołać się do modułu najwyższego poziomu w Pythonie wewnątrz paczki?
Nie jestem zwolennikiem użycia względnego importu takiego jak "..level_one_a", ponieważ ścieżka względna różni się od każdego z plików Pythona poniżej. Szukam sposobu, aby:
- Każdy plik python może mieć taką samą instrukcję import dla tego samego modułu w pakiecie.
Oddzielenie odniesienia do "top_package" w dowolnym pliku .py wewnątrz paczki, więc jakakolwiek nazwa "top_package" zmieni się, nic nie zepsuje.
top_package/ __init__.py level_one_a/ __init__.py my_lib.py level_two/ __init__.py hello_world.py level_one_b/ __init__.py my_lib.py main.py
Dlaczego chcesz odniesienie do modułu najwyższego poziomu? (Czasami ta odpowiedź ujawnia prawdziwy problem/rozwiązanie). –
Chcę, aby pakiet był jak najbardziej możliwy do ponownego użycia, więc kiedy zmieni nazwę górnego modułu, wszystko może nadal działać normalnie, bez konieczności zmiany nazwy importu wewnątrz. – hllau