私がピクルを理解しているように、オブジェクトのクラスが両方の名前空間に存在する限り、ファイルとプロジェクトの間でオブジェクトを送信できます。Prime オブジェクトを渡す 2 つのアプリケーションがあります。
class Prime():
def __init__(self):
self.a = 1
def func(self):
print(self.a)
どちらのアプリケーションも、上記のバージョンの で開始されますPrime
。しかし、最初のアプリケーションは の機能を変更Prime
しfunc
ますprint("hello world")
。Prime
2 番目のアプリケーションは、最初のバージョンのpickle を受け取り、次のように使用します。
Second.py:
i = Prime
i.func()
with open("temp.txt", "r") as text:
o = pickle.load(text)
o.func()
出力:
1
hello world
私の2部構成の質問はこれです。2 番目のアプリケーションの名前空間に の元のバージョンしかない場合、Prime
クラスとメソッドの名前が変更されていない限り、最初のアプリケーションと連携できますか? もしそうなら、どうすれば最初の機能を変更できPrime.func
ますか?