2017-09-16 122 views
0

这是我的代码错误在Python代码

class New_Class: 
    def func(self,name): 
     self.name = name 
    def prnt(self): 
     print(self.name) 

我创造了这样的

obj = New_Class 

分配的字符串对象:

obj.func("Aniket") 

被调用函数:

obj.prnt() 

错误:

TypeError         Traceback (most recent call last) 
<ipython-input-9-3e8021509a88> in <module>() 
----> 1 obj.func("Aniket") 

TypeError: func() missing 1 required positional argument: 'name' 
+5

您需要_call_为类的构造函数:'OBJ = New_Class()'。做'obj = New_Class'分配'obj'到_class对象_'New_Class'。当一个方法直接在类上调用时,Python不会隐式传递一个对象实例。 –

回答

1

要初始化实例为一类,你需要调用类(括号“()”),而不是单指它(不带括号)。

所以正确的代码将

class New_Class: 
    def func(self,name): 
     self.name = name 
    def prnt(self): 
     print(self.name) 

obj = New_Class() ##### Brackets make a difference 
obj.func("Aniket") 
obj.prnt() 
0

您分配您的变量的类引用,而不是实例化一个新的对象了之类的。

您可以添加括号做的工作适合你,如:

obj = New_Class() 
obj.func("Aniket") 
obj.prnt() 

我想你的函数将这个变化后正常工作。

:)