我有一个名为" data-packet"如下所示。我试图实例化它,以便我可以使用方法connect('#username#','#password#','t3://localhost:#adminport#')
serverRuntime()
cd ('JDBCServiceRuntime/AdminServer/JDBCDataSourceRuntimeMBeans/#datasource_name#')
invoke('shutdown',objectArray, stringArray)
invoke('start',objectArray, stringArray)
和getAcc
返回的值。我还在" main"中包含了创建data_packet类实例的代码。
我收到了这个错误:
getRot
我的假设是实例将Traceback (most recent call last)
mydata = data_packet()
TypeError: __init__() takes exactly 2 arguments (1 given)
传递给名为self的参数,但没有任何内容传递给l。如果我是对的,我该如何解决这个错误?
mydata
答案 0 :(得分:1)
从代码和回溯中可以看出答案非常明显:你的data_packet
类采用必需的参数l
(即" L"小写 - 标识符1永远不要使用...) - 显然是list
FWIW - 你不会通过。
注意:self
是当前实例并自动传入。
答案 1 :(得分:1)
对象方法中的self
是对实例化对象的引用。通过点表示法调用方法时,例如mydata.getAcc()
,对象自动作为第一个参数传递。更明确的实现方法是通过类调用方法:data_package.getAcc(mydata)
。
__init__
在对象实例化时自动调用,但否则它的工作方式相同。写作data_package()
可以想象为data_package.__init(new_object)
。
但是,在类定义中,您为l
定义了第二个参数__init
。您的对象实例化应为data_package(l)
,这样,l
将作为其第二个参数传递给__init__
。即data_package.__init(new_object, l)
。