2017-09-16 125 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() 

我想你的函數將這個變化後正常工作。

:)