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 のやり方を練習する必要があります。