【发布时间】:2015-07-14 09:37:54
【问题描述】:
几天前我刚开始使用 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 解释器中也看到了这种行为。
如果之前有人问过类似的问题,我们深表歉意。我没有找到与此相关的问题。
【问题讨论】:
-
@all:谢谢,非常快速和有用的答案!