NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Problém s opakováním.

Aktivity
Avatar
Martin Růžička:19.8.2017 20:39

Ahoj, mám menší problém s s mini kodem, který má opakovat importovaný file. Podle mne co by to mělo dělat, je, že provede vše z file, počká 2 sec. a zase provede vše z file (a pořád dokola). Výsledek je takový, že se provede file a poté čeká a nic se neděje. Jinak s Pythonem začínám.

import time
a=0
while(a<1):
        from file import *
        time.sleep(2)
 
Odpovědět
19.8.2017 20:39
Avatar
Odpovídá na Martin Růžička
Michal Haňáček:19.8.2017 21:04

Ahoj, těch problémů v tom kódu je povíce. Doporučil bych ti začít hezky od začátku například se zdejšími tutoriály.

  • ten script je v nekonečné smyčce
  • nekonečněkrát importuješ všechno z balíčku file

Co znamená "který má opakovat importovaný file"?

Nahoru Odpovědět
19.8.2017 21:04
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na Michal Haňáček
Martin Růžička:19.8.2017 21:13
  1. To že je v nekonečné smyčce toho si jsme vědom, to tak chci. Ten program by měl běžet prostě po celou dobu.
  2. A to asi taky chci, protože ve file.py je kód, který se musí udělat celý. (Je to měření z modulu, který má vypsat nějaký výsledek). Takže moje očekávání je, že se mi bude zobrazovat každý dvě sekundy výsledek.

    Co znamená "který má opakovat importovaný file"? To znamená, že chci opakovat vlastně část programu, která je v tom filu. (Importuji to, abych to měl hezky oddělené od sebe.)

Vím, že je elegantnější řešení, ale jen jsem to chtěl takto na rychlo zkusit, ale snad by tam neměl být, žádný logický problém, ne?

 
Nahoru Odpovědět
19.8.2017 21:13
Avatar
B42P6
Člen
Avatar
B42P6:19.8.2017 22:26

V Python-e je každý modul importovaný len raz. Druhýkrát je pri importovaní využitý ten istý modul, ktorý už je uložený v pamäti.
Môžeš však modul reimportovať (neviem ako to preložiť) funkciou reload

Ak používaš Python 3, reload je v module imp.

Mimochodom, nabudúce stačí iba poriadne hľadať :-) :
https://stackoverflow.com/…ltiple-times
https://stackoverflow.com/…ython-module

Editováno 19.8.2017 22:29
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
19.8.2017 22:26
'long long long' is too long for GCC
Avatar
Martin Růžička:20.8.2017 0:58

To mi po chvíli zkoumání došlo, že se to neimportuje znova se začátečnima hodnotama, poté jsem hledal složitě funkci, v která by resetovala všechny hodnoty, aby ten importovany kód mohl jít od začátku. Nakonec jsem to improvizovaně vyřešil tím, že jsem udělal jednoduchý script na opakování celého programu. Ale tohle vypadá lépe, určitě se na to mrknu. Díky moc :)

 
Nahoru Odpovědět
20.8.2017 0:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.