2017-04-21 5 views
0

executor関数を定義することによって、クライアントノードのクラスNetworkUtilityで継承された関数を定義しました。 あなたは教えてください、なぜそれはエラーの上に表示されます。私はそれについての手がかりがありません。TypeError:executor()は引数をとりません(1が指定されています)

#!/usr/bin/python 
import socket 
from NetworkUtility import NetworkUtility 
#import json 

HOST = '' # get local machine name by socket.gethostname() 

PORT = 50007    # The same port as used by the server,reserve a port for ur service reserve port 



class ClientNode(object):  #if you don't want to inherit NetworkUtility 


      def executor(): 

       cn1 = NetworkUtility() 
       cn1.setupClientConnection(HOST, PORT) 

       cn1.sendMessage('Client 1: Hello') 
       print cn1.receiveMessage() 
       cn1.endConnection() 

c = ClientNode() 
c.executor() 
+0

クラス内にある場合は、クラスインスタンスに「self」を渡している可能性があります。 –

答えて

1

executor()あなたClientNodeクラスのメソッドである場合は、あなたが使用する必要があります。

def executor(self): 

をあなたはc.executorを実行すると、cは、クラスのインスタンスは、あなたのメソッドの最初の引数として渡されています。 selfは、このようにしてcを表します。

したがって、1つの引数を指定していることは正しかったですが、エグゼキュータが現在引数を取っていないという事実は、上記の修正が必要です。

+0

オリジナルの質問にコードを書式設定して、インプリメントが実装のとおりに表示されるようにしますか? – JacobIRR

+0

私はexecutor(self)を置くと "socket.error:[Errno 111] Connection refused"と表示されます – arpita

+0

これは私の答えがあなたの問題を解決したことを意味します。そして今、あなたは新しい問題を抱えています。 – JacobIRR

関連する問題