2016-11-26 67 views
-1

這是我的代碼。我試圖打印一個學生的名字,但我收到了很多錯誤。我做錯了什麼?非常感謝你!試圖打印學生姓名有什麼問題?

class Elev: 
""" 
Un elev are nume, cnp,clasa, 
""" 
def __init__(self,nume,cnp,clasa): 
    self.nume=nume 
    self.cnp=cnp 
    self.clasa=clasa 
def set_nume(self,nume): 
    self.nume=nume 
def get_nume(self): 
    return self.nume 
def set_clasa(self,clasa): 
    self.clasa=clasa 
def get_clasa(self): 
    return self.clasa 
def set_cnp(self,cnp): 
    self.cnp=cnp 
def get_cnp(self): 
    return self.cnp 
def merg(self): 
    print("Merge la ore") 
def __str__(self): 
    return "%s"(self.nume) 

這是我使用的第二類:

class Student(Elev): 
def __init__(self,nume,cnp,an): 
    self.an=an 
    super().__init__(self,nume,cnp) 
def Vacanta(self): 
    print("Nu ai restanta ai vacanta!!!!!") 

這裏我們我怎麼叫類和函數

def Main(): 
student=Student("Popescu Vasile",232423423,1) 
print(student.get_nume()) 

Main() 

的錯誤是:

Traceback (most recent call last): File "D:/Facultate/Python/tema_mostenire/tema_mostenire.py", line 36, in <module> Main() File "D:/Facultate/Python/tema_mostenire/tema_mostenire.py", line 34, in Main print(student.get_nume()) File "D:/Facultate/Python/tema_mostenire/tema_mostenire.py", line 24, in str return "%s"(self.nume) TypeError: 'str' object is not callable 
+1

你可以發佈你正在得到的錯誤嗎? – Inconnu

+0

回溯(最近通話最後一個): 文件 「d:/Facultate/Python/tema_mostenire/tema_mostenire.py」 36行,在 的Main() 文件「d:/Facultate/Python/tema_mostenire/tema_mostenire.py 「,第34行,主 print(student.get_nume()) 文件」D:/Facultate/Python/tema_mostenire/tema_mostenire.py「,第24行,在__str__中 返回」%s「(self.nume) TypeError:'str'對象不可調用 – Mary

+1

用錯誤消息編輯您的帖子以獲取所有信息在同一個地方。 – Surt

回答

0

除了壓痕有兩個問題與您的代碼:

def __str__(self): 
    return "%s"(self.nume) 

以上是無效Python代碼,您可以按照Daniel的建議添加%運算符,或者您可以修改它以返回名稱:

def __str__(self): 
    return self.nume 

的第二個問題是你調用父類的構造函數來這裏的路上:

def __init__(self,nume,cnp,an): 
    self.an=an 
    super().__init__(self,nume,cnp) 

super被稱爲不帶參數則不需要提供self參數,但需要提供其他三個參數父預計:

def __init__(self,nume,cnp,an): 
    self.an=an 
    super().__init__(nume,cnp, 'foo') 
0

__str__方法缺少%操作:

def __str__(self): 
    return "%s" % (self.nume) 

如果你使用正確的風格,與運營商之間的空間,這將是更容易看到。

+0

不,它不工作的事件,如果我把% – Mary

+0

而我得到這個錯誤:RecursionError:調用Python對象時超過最大遞歸深度 – Mary

0

從你得到了錯誤,它看起來像問題是低於class.See的最後一個函數:

class Elev: 
"" Un elev are nume, cnp,clasa, """ 
def __init__(self,nume,cnp,clasa):   self.nume=nume self.cnp=cnp self.clasa=clasa 
def set_nume(self,nume): self.nume=nume 
    def get_nume(self): 
    return self.nume 
    def set_clasa(self,clasa): self.clasa=clasa 
    def get_clasa(self): 
    return self.clasa 
    def set_cnp(self,cnp): 
    self.cnp=cnp 
    def get_cnp(self): 
    return self.cnp 
    def merg(self): 
    print("Merge la ore") 
    def __str__(self): 
    return "%s" % (self.nume) #fixed 
相關問題