Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyCode Conference :: https://pycode-conference.org/
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Import w pętli  (Przeczytany 133 razy)
« : 19:56 09/10/18 »
Szymon Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 3


Cześć, czy można to zrobić lepiej?

while 1:
  import a
  while 1:
    import a
(oczywiście while jest trochę bardziej skomplikowany Mrugnięcie

Mogłem zrobić jeden import na samej górze ale wtedy nie chciał się odświeżać.
Zapisane
« Odpowiedz #1 : 20:18 09/10/18 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 27
Wiadomości: 377


Chyba żartujesz Uśmiech A co chcesz "odświeżać" ??
Zapisane
« Odpowiedz #2 : 20:26 09/10/18 »
Szymon Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 3


Dlaczego żartuje? W pętli mam dane z api. Żeby nie mieć dużo funkcji w pętli zrobiłem je w innym pliku.
Zapisane
« Odpowiedz #3 : 20:49 09/10/18 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 27
Wiadomości: 377


Można wykonać coś takiego:

Kod
 
import importlib
 
module_names = ["os", "itertools", "math", "csv", "json"]
 
for module in module_names :
   globals()[module] = importlib.import_module(module)


....albo nie zrozumiałem na czym Ci zależy.
Zapisane
« Odpowiedz #4 : 21:02 09/10/18 »
Szymon Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 3


Skrypt wygląda(uwzględniając tylko funkcje) w uproszeniu tak:

while 1:
  def x1():
 
  a
  def x2():
    b
  while 1: (powtarzają się teraz znowu powyższe funkcje)
    def x1():
      a
   def x2():
      b


więc postanowiłem zrobić funckcję x1 i x2 w pliku f.py.

while 1:
 from f import *
   while 1:
      from f import *

Jest teraz o wiele czyściej, ale zastanawiam się czy tak się powinno robić.
Zapisane
« Odpowiedz #5 : 21:59 09/10/18 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 27
Wiadomości: 377


Python tylko raz importuje dany moduł (i to wystarcza). Sądzę, że swój kod możesz znacznie uprościć, albo przynajmniej skrócić. Pomyśl o zastosowaniu rekurencji.

https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Import_Statement_Overhead

Cytuj
import statements can be executed just about anywhere. It's often useful to place them inside functions to restrict their visibility and/or reduce initial startup time. Although Python's interpreter is optimized to not import the same module multiple times, repeatedly executing an import statement can seriously affect performance in some circumstances.
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot