隐藏参数在哪里?

2024-04-25 01:10:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有一个函数调用:

import test_hosts

test_hosts.LocalTestHost(mst, port, local_ip, remote_if_mac, remote_if_ip, service_port)

当我运行它时,解释器失败了,它说我要把6个参数传递给一个接收7个参数的函数。在

LocalTestHost是一个类,它的构造函数接受一个self参数和其他六个参数:总共有7个参数。这是它的声明:

^{pr2}$

我已经盯着这个代码好几个小时了,但我找不到问题所在。当我按原样运行时,它失败了,因为我传递了6个参数,这太少了,如果我用一个添加的参数调用构造函数,只是为了看看我还能计数,它说我传递了8个参数,这太多了。在


Tags: testimportip参数ifremoteportmac
3条回答

另一个想法是:您无意中调用了旧版本的代码。确保你的某个地方没有.pyc文件。在

我以前见过这些问题,但这是因为前面的代码是以一种语法正确的方式编写的,但并不是我所希望的那样。在

这个片段不足以重现我的问题,至少在OSX上的2.5.1上没有

你粘贴的代码片段看起来不错。正如其他人正确地说的那样,要找到问题,您应该找到仍然存在bug的最小数量的代码。在

我的建议是

(1)检查模块test_hosts是为您的Python版本编写的,并且它确实是要导入的文件

(2)将class LocalTestHost: def __init__(...函数复制到文件中,然后尝试从那里调用它。如果参数的Š正确,它将引发类似NameError的内容。在

(3)如果上述函数对您有效,请使用运行时自省检查test_hosts.LocalTestHost.__init__()签名。有人可能正在某处通过__init__ = staticmethod(__init__)来改变它(一种定义静态函数的老方法)。在

请告诉我们进展如何!在

相关问题 更多 >