2

私がピクルを理解しているように、オブジェクトのクラスが両方の名前空間に存在する限り、ファイルとプロジェクトの間でオブジェクトを送信できます。Prime オブジェクトを渡す 2 つのアプリケーションがあります。

class Prime():
    def __init__(self):
        self.a = 1
    def func(self):
        print(self.a)

どちらのアプリケーションも、上記のバージョンの で開始されますPrime。しかし、最初のアプリケーションは の機能を変更Primefuncますprint("hello world")Prime2 番目のアプリケーションは、最初のバージョンの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ますか?

4

3 に答える 3