如何在python类中打印出来

时间:2017-10-31 05:51:32

标签: python class

我试图搞清楚,但我被卡住了。我有这个脚本

 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

任何解决方案,好吗?

2 个答案:

答案 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
    >>>