錯誤: TypeError: 'str' object is not callable,TypeError: 'int' object is not callable等
阿新 • • 發佈:2018-11-09
先說上面出現的原因:
TypeError: 'str' object is not callable:就是str不可以被系統呼叫,
TypeError: 'int' object is not callable:就是int不可以被系統呼叫
原因就是:你正在呼叫一個不能被呼叫的變數或物件,就是你呼叫函式、屬性變數的方式錯誤。你可能即定義了一個名為dance(這個名稱是隨便取的,我看到網上大多都是用str這個作為列子和str()函式重名,沒怎麼說清楚,特別說明一下)的屬性變數,還定義了一個dance函式,當呼叫dance函式的時候,就會出現上述的錯誤情況。
例子:
# 錯誤程式碼 class life(object): # 有dance屬性變數 def __init__(self, dance, eat): self.dance = dance self.eat = eat # 又有dance()函式 def dance(self): return '跳舞{}次!'.format(self.dance) def eat(self): return '吃飯{}次!'.format(self.eat) if __name__ == '__main__': someone = life(1, 3) # 呼叫dance()函式 a = someone.dance() print(a)
正確程式碼:只用函式名和屬性變數名不一樣就好了
class life(object): def __init__(self, dance, eat): self.dance = dance self.eat = eat def dance_count(self): return '跳舞{}次!'.format(self.dance) def eat_count(self): return '吃飯{}次!'.format(self.eat) if __name__ == '__main__': someone = life(1, 3) a = someone.dance_count() print(a) # 或者是 class life(object): def __init__(self, dance, eat): self.dance1 = dance self.eat1 = eat def dance(self): return '跳舞{}次!'.format(self.dance1) def eat(self): return '吃飯{}次!'.format(self.eat1) if __name__ == '__main__': someone = life(1, 3) a = someone.dance() print(a)