2016-07-26 122 views
-9
class a(object): 
    def __init__(self,x,y): 
     self.name=x 
     self.family=y 
    def enter(self): 
     self.name=input("enter name=") 
     self.family=input("enter family=") 
    def show(self): 
     print("self.name",self.name,"enter family=",self.family) 

object=a('sam','salam') 
object.show() 


object1=a() 
object1.enter() 
object1.show() 

我想在此代碼中調用並輸入姓名和姓氏。當我使用o = a('sam','salam')作爲第一個對象時,沒有問題。儘管object1 = a()作爲第二個對象存在問題。當我運行時,我收到:這個Python代碼有什麼問題?

object1=a() TypeError: init() missing 2 required positional arguments: 'x' and 'y'

什麼問題和如何消除這種情況? 謝謝,

+3

你不能帶走'a'的名字和家人。這太殘酷了。 –

+0

我想你必須爲x和y設置默認值 –

+4

請爲你的問題使用更多的描述性標題。 「爲什麼我的代碼不工作」不是一個好的標題。 –

回答

0

當我運行代碼,我得到以下異常:

TypeError: __init__() takes exactly 3 arguments (1 given)

你要通過xy參數的構造函數或定義的默認值:

參數的構造函數:

object1 = a("name", "family") 

默認值:

class a(object): 
    def __init__(self, x="", y=""): 
    ... 
+0

請通過示例多說明一下。我不明白。 – sasan

+1

您必須通過構造函數傳遞參數,如下所示:object = a('sam','salam')。如果沒有參數,構造函數不能知道'x'或'y'是什麼 –

+0

但我想使用object1.enter()而不通過構造函數定義任何名稱。 – sasan