私は数日前にPythonを使い始めたばかりで、C++のバックグラウンドから来ています。クラスを作成し、それをスクリプトで呼び出し、その後クラスのインターフェイスを更新すると、非常に直感的でない動作が発生します。
コンパイルに成功すると、クラスはもう変更できないようです。ここに例があります:
testModule.py:
class testClass:
def __init__(self,_A):
self.First=_A
def Method(self, X, Y):
print X
testScript.py:
import testModule
tm=testModuleB.testClass(10)
tm.Method(3, 4)
実行は私に与えます
3
ここで、次の引数リストを変更しますMethod
。
def Method(self, X):
、testModule.pycを削除し、スクリプトで呼び出します
tm.Method(3)
その結果、私は得る
TypeError: Method() takes exactly 3 arguments (2 given)
私は何を間違っていますか?スクリプトが更新されたバージョンのクラスを使用しないのはなぜですか? 私は Canopy エディターを使用していますが、この動作は python.exe インタープリターでも見られました。
また、以前に同様の質問があった場合は、申し訳ありません。この質問に関連する質問は見つかりませんでした。