2016-05-11 7 views
-1

私は単純なコードの問題を抱えています。インポートの部分はOKです。エラーメッセージが表示されたら、私はクラスで間違いを犯したと思います。Python 3.5コード - クラスが正しく定義されていません

status_listener = SessionStatusListener() 
TypeError: interface takes exactly one argument 

ので、コードは次のとおりです。

import clr 

clr.AddReference ("fxcore2") 
from fxcore2 import O2GTransport, IO2GSessionStatus 

class SessionStatusListener(IO2GSessionStatus): 

    def __init__(self): 
     IO2GSessionStatus.__init__(self) 
     self.connected = False 

    def onLoginFailed(self, error): 
     print ("*** LOGIN FAILED: %s" % error) 

    def onSessionStatusChanged(self, status): 
     print ("NEW STATUS: %s" % status) 
     if status == O2GSessionStatusCode.Connected: 
      self.connected = True 

主なアプリケーションは、何かアドバイスが高く評価され、ここで

if __name__ == "__main__": 

    session = O2GTransport.createSession() 
    status_listener = SessionStatusListener() 

を開始します。

+0

コード内にエラーメッセージが生成されることはありません。 'IO2GSessionStatus .__ init__'は引数のために何を期待していますか? – chepner

+0

おそらく 'Session'を' SessionStatusListener'に渡す必要があります(そして 'IO2GSessionStatus'に渡す必要があります)。 – Evert

答えて

0

SessionStatusListenerに引数を渡すように渡します。 :私は、私は

status_listener = SessionStatusListener() 

はこのように、一つの引数を必要としていることを言っていると信じていますが

super().__init__(self) 

代わりの

IO2GSessionStatus.__init__(self) 
+0

なぜ 'super'が何か変わるのですか?また、 'super'への呼び出しは、暗黙の引数と明示的な引数の両方としてインスタンスを渡します。 –

0

のようなものに__init__体を変更する必要があることを想像します

status_listener = SessionStatusListener(1) 

私はそれが予期しているデータの種類を正確にはわかりませんが、引数を渡す必要があります。

+0

2.7と3.5の間のオブジェクトの遺産に問題がある可能性がありますか? –

関連する問題