Trudno jest znaleźć coś, co nie jest możliwe w dynamicznym języku, takim jak Python, ale czy naprawdę musimy nadużywać wszystkiego? W każdym razie, to jest tutaj:
from types import ModuleType
import sys
class JVM(ModuleType):
Foo = 3
sys.modules['JVM'] = JVM
from JVM import Foo
print Foo
Ale jeden wzór Widziałem w kilku bibliotekach/projektów jest jakiś rodzaj _make_module()
funkcji, która tworzy ModuleType
dynamicznie i inicjalizuje wszystko w nim. Następnie bieżący moduł zostanie zastąpiony przez nowy moduł (przy użyciu przypisania do sys.modules
) i funkcja _make_module()
zostanie usunięta. Zaletą tego jest to, że możesz przechodzić przez moduł, a nawet dodawać obiekty do modułu wewnątrz tej pętli, co jest czasami bardzo przydatne (ale używaj go z ostrożnością!).
Dlaczego? czy kiedykolwiek to zrobiłeś? –
@ S.Lott Zasadniczo chcę zaimportować pakiety i klasy ze zdalnej maszyny JVM (w programie Python) i chociaż mogę podać metodę importowania, chciałbym ponownie użyć składni Pythona. – Barthelemy
"import pakietów i klas ze zdalnej maszyny JVM"? Nie plik? Jak to zadziała? Jak zarządzać tworzeniem plików .pyc? Co jest nie tak z "plikami"? Działają naprawdę dobrze. Co jest złego w zdalnym montowaniu systemu plików? To działa naprawdę dobrze. –