2017-10-31 19 views
-1

私はそれを理解しようとしましたが、私は立ち往生しています。私は、このスクリプトPythonクラスでの印刷方法

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 

すべてのソリューションをしてください起こりますか?

答えて

3

speakを2回、関数定義と属性を使用します。 me.speak()と言うと、呼び出し可能でない属性を呼び出そうとします。

そのうちの一つの名前を変更します。

def speak2(self): 
    print ("I'm Speaking") 

次に、新しい名前でそれを呼び出す:

me.speak2() 
0

方法を削除するには(話す)クラスで自分。

コード(Pythonシェルで):

>>> 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 
    >>> 
+0

'me.speak.first_nameは()' '話すを削除せずに動作します()'、 'あなたが言うときので、 me.speak.first_name() '、それは' speak'を呼び出さず、ただそれを使用します。 OPは 'me.speak()'を使いたい。 – Alperen