我试图搞清楚,但我被卡住了。我有这个脚本
class Myname():
def first_name(self):
print("it's Mark")
def last_name(self):
print ("it's Anthony")
class Myself():
def speak(self):
print ("I'm Speaking")
def __init__(self):
self.speak = Myname()
def say(self,word):
print (word)
me = Myself()
me.speak.first_name()
该脚本显示:
it's Mark
但是当我说出来的时候:
me.speak()
然后发生这个
TypeError: 'Myname' object is not callable
任何解决方案,好吗?
答案 0 :(得分:3)
您使用speak
两次,一个函数定义和一个属性。当你说me.speak()
时,它会尝试调用不可调用的属性。
重命名其中一个:
def speak2(self):
print ("I'm Speaking")
然后用新名称调用它:
me.speak2()
答案 1 :(得分:0)
删除Myself类中的方法speak()。
代码(在python shell中):
>>> class Myname():
... def first_name(self):
... print("it's Mark")
... def last_name(self):
... print ("it's Anthony")
...
>>> class Myself():
... def __init__(self):
... self.speak = Myname()
... def say(self,word):
... print (word)
...
>>>
执行输出:
>>> me = Myself()
>>>
>>> me.speak.first_name()
it's Mark
>>>