Cześć, mam takie szybkie pytanko, czy jak mam plik np. main.py i tam korzystam z modułu random, ale chce sobie część funkcjonalnosci przenieść do innego pliku np. asdf.py i tam też importuje random, a potem ten plik importuje do pliku main.py to mam teoretycznie 2x import random. Czy python podczas interpretacji pomija te powielony importy? I czy jest to zła praktyka? Jak powinno sie to robić dobrze?
0
3
O pythona się nie bój, poradzi sobie ;) Ma cache załadowanych modułów:
import sys
print(sys.modules)
Problem jest dopiero kiedy chcesz zrobić jakiś krzyżowy import (tzn twój moduł A importuje B, a B próbuje importować A)
1
A oprócz tego, w swoich modułach chcesz, tak na wszelki wypadek, chcesz zapewnić, by ich ładowanie było idempotentne — tzn. wykonane wielokrotnie w niczym nie szkodzi.
2
Z ciekawostek, których NIGDY nie widziałem w językach kompilowanych, to
if ... :
import something
Stawia to medytację o importach na zupełnie innym poziomie
Przypomnę, że C #include
to nie import