Ich habe versucht, eine Python-Funktion auszuwählen und wiederherzustellen
test1.py
This is test1.func()
This is test2.func()
test2.py
This is test2.func()
This is test2.func()
Wie oben erwähnt, liest test2.py func () mit demselben Namen. Wenn func () nicht in test2.py enthalten ist, tritt ein Fehler mit "Namensfehler: Name 'Funktion' ist nicht definiert" auf.
Wenn Sie test1.py mit test1.py importieren und test1.func als pickle speichern, wird es korrekt gelesen.
Ich habe die folgenden zwei Dateien in dasselbe Verzeichnis gestellt und jeweils ausgeführt.
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