JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
#naukaprogramowania #python #programowanie

Mam kilka plików .py z napisanymi funkcjami, które następnie importuje do głównego pliku, w którym je wywołuje. Czy jest jakiś sposób, żeby biblioteki, których używam, importować w jednym miejscu (np w pliku głównym) a nie w każdym pliku z osobna?
2
  • Najlepsze
  • Wszystkie komentarze
dog_meat
@JajkoJajkoJajkoJajko: w Pythonie moduły są singletonami, więc i tak zawsze jest jedna instancja, czyli nie zajmuje więcej pamięci
4
RobotKuchenny9000
@JajkoJajkoJajkoJajko: A w jakim celu chciałbyś to robić? Skoro twoje poszczególne funkcję wymagają określonych bibliotek do działania to są ich integralną całością i raczej nie powinieneś tego przerzucać do innego pliku. Nawet nie wiem czy byś później w ogóle dał rade testować takie coś.
3
RobotKuchenny9000
czyli nawet jak wielokrotnie importuję biblioteki, to nie ma to wpływu na większe wykorzystanie pamięci, a jak z szybkością działania napisanego kodu?


@JajkoJajkoJajkoJajko: To czy importujesz raz czy 20 nie ma na to wpływu dlatego że "fizycznie" jest tylko jeden import który to obsługuje, ten który wg hierarchii został wywołany pierwszy. Reszta funkcji które z niego korzystają jest pod niego "podpinana".

i jeszcze, jeżeli przykładowo chciałbym w przyszłości przerobić plik
3
dog_meat
@JajkoJajkoJajkoJajko: dokładnie. Liczba impotrów nie ma żadnego wpływu na wydajność
2
chester
@chester: Ale raczej tak się nie da. Explicit is better than implicit.
1
JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
@RobotKuchenny9000
@dog_meat
super, dzięki za odpowiedzi! :)
1
JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
@RobotKuchenny9000 chodzi mi o to, że wielokrotnie importuje te same biblioteki i po prostu nie wiem czy jest sens tak robić :P wcześniej pisałem w Rscript i tam nawet jak funkcja wymaga jakiejs biblioteki, to wystarczy ją importować w miejscu, gdzie ta funkcja jest wywołana, a nie zdefiniowana. Czy tak się w Pythonie nie da? Mam nadzieję że pisze w miarę jasno
0
chester
@JajkoJajkoJajkoJajko: podaj przykład kodu, to będzie jaśniej
0
RobotKuchenny9000
@JajkoJajkoJajkoJajko: Ok mniej więcej chyba rozumiem, nie wiem jak jest w Rscript, ale w Pythonie import jest wywoływany tylko raz, nie będziesz miał przez to żadnych problemów jeśli chodzi o jakieś dodatkowe niepotrzebne wywołania.
0
JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
Przykład: mam plik WeatherForecast.py, w którym napisałem funkcję getWeatherForecast z wykorzystaniem requests i pandas. kolejny plik to WeatherHistory.py, którym napisałem funkcję getWeatherHistory również z wykorzystaniem requests i pandas

oba pliki importuję do pliku getData.py i tam wywołuję dopiero obie funkcje w nich zawarte. Więc pomyślałem że może da się zaimportować biblioteki w pliku getData.py, żeby nie powielać tego importowania w plikach WeatherForecast i WeatherHistory
0
JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
@RobotKuchenny9000: @dog_meat: czyli nawet jak wielokrotnie importuję biblioteki, to nie ma to wpływu na większe wykorzystanie pamięci, a jak z szybkością działania napisanego kodu? i jeszcze, jeżeli przykładowo chciałbym w przyszłości przerobić plik .py na .exe (np. przy pomocy py2exe), to czy takie wielokrotne importowanie bibliotek nie sprawi że plik będzie miał dużo większy rozmiar?
0
JajkoJajkoJajkoJajko
JajkoJajkoJajkoJajko
@chester: wołam Cię do odpowiedzi 2 komentarze powyżej ;)
0