J'ai essayé de choisir une fonction python et de la restaurer
test1.py
This is test1.func()
This is test2.func()
test2.py
This is test2.func()
This is test2.func()
Comme mentionné ci-dessus, test2.py lira func () avec le même nom. Si func () n'est pas dans test2.py, une erreur se produira avec "Name Error: name'func 'is not defined".
Si vous importez test1.py avec test1.py et enregistrez test1.func en tant que pickle, il peut être lu correctement.
J'ai mis les deux fichiers suivants dans le même répertoire et les ai exécutés chacun.
test1.py
import pickle
import test2
def save_pickle(obj, path):
with open(path, mode='wb') as f:
pickle.dump(obj, f)
def load_pickle(path):
with open(path, mode='rb') as f:
obj = pickle.load(f)
return obj
def func():
print('This is test1.func()')
def main():
func()
test2.func()
path = 'test1_func.pickle'
save_pickle(func, path)
func_from_pickle = load_pickle(path)
func_from_pickle()
path = 'test2_func.pickle'
save_pickle(test2.func, path)
func_from_pickle = load_pickle(path)
func_from_pickle()
if __name__ == '__main__':
main()
test2.py
import pickle
def load_pickle(path):
with open(path, mode='rb') as f:
obj = pickle.load(f)
return obj
def func():
print('This is test2.func()')
def main():
path = 'test1_func.pickle'
func_from_pickle = load_pickle(path)
func_from_pickle()
path = 'test2_func.pickle'
func_from_pickle = load_pickle(path)
func_from_pickle()
if __name__ == '__main__':
main()
Recommended Posts