Powielony import w pliku

0

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?

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1