0

telnet 接続を介してモデムと通信する Python (違いがある場合は 3.3) クラスを作成しようとしています。基本的に、ユーザー入力に応じて異なるコマンドがモデムに送信されます。プログラムの実行中は telnet 接続を開いたままにしておきたいと思います。C# と Java のバックグラウンドを持っていたので、Python を使用するのは初めてなので、まだコツをつかもうとしているところです。

とにかく、私は OO の概念についてあまり学んでいないと思うので、これを尋ねるつもりでした: 同じクラスの複数のメソッドで永続的な telnet 接続を再利用するための好ましい方法はありますか? また、現在のコードを に入れることをお勧めし_loginます__init__か? いくつかのコード例を示します。

オプション A:tn渡す_login

class Communicator:
    tn = telnetlib.Telnet()

    def __init__(self, host, port, user, password):
        self._login(user, password)

    def _login(self, host, port, user, password, conn=tn):
        conn.open(host, port)
        conn.read_until("Username: ")
        conn.write(user.encode('ascii') + b"\r\n")
        conn.read_until("Password: ")
        conn.write(password.encode('ascii') + b"\r\n")

オプション B:_login使用するself.tn

class Communicator:
    tn = telnetlib.Telnet()

    def __init__(self, host, port, user, password):
        self._login(user, password)

    def _login(self, host, port, user, password):
        self.tn.open(host, port)
        self.tn.read_until("Username: ")
        self.tn.write(user.encode('ascii') + b"\r\n")
        self.tn.read_until("Password: ")
        self.tn.write(password.encode('ascii') + b"\r\n")

オプション C: 他に何かありますか?

私はいつでも提案を受け付けています。私が言ったように、Python をいじるのは初めてなので、Python のやり方を練習する必要があります。

4

0 に答える 0