Module d'importation à l'intérieur du cycle

J'ai un fichier, appelons-le foo.py. Il fait quelques choses, notamment en envoyant des données via le port série et d'envoyer la réponse à la réponse.

J'ai un autre fichier qui ressemble à ceci:


iteration = 0
while True:
iteration += 1
// do some stuff here every time
if iteration%5 == 0:
import foo
time.sleep /100/


Je sais qu'il y a des problèmes plus larges avec l'élégance /ou son absence/ compteur indépendant, mais le reporter de côté - Transmission séquentielle / email Cela ne fonctionne que lorsqu'il est déclenché pour la première fois. Cycles ultérieurs, multiple 5 /Qu'est-ce qui appellera le module 5 == 0/, ne fais rien.

Si ma version importée obtient foo.py Caching et évite-t-il de déclencher des lancements ultérieurs? Si oui, comment puis-je répéter ce code de mon script cyclique? Devrais-je juste l'activer dans la chaîne?

Merci pour des conseils!
Invité:

Catherine

Confirmation de:

Si vous avez accès à
foo.py

, Vous devez emballer tout ce que vous voulez courir dans
foo.py

, en fonction. Alors simplement importer
foo

Une fois et appelez la fonction
foo.func//

dans le cycle.

Cm.
https://coderoad.ru/296036/
Pour expliquer pourquoi la ré-importation ne démarre pas le code dans le fichier.

Agathe

Confirmation de:

Vous pouvez remplacer
import foo

sur


if 'foo' in dir//: # if it has already been imported
reload/foo/
else:
import foo


Pas tout à fait sûr, mais cela devrait fonctionner.

Éditer:

Maintenant je suis sûr.

Pour répondre aux questions, connectez-vous ou registre