我正在尝试编写一个 Python(3.3,如果它有所不同)类,它将通过 telnet 连接与调制解调器通信。基本上,不同的命令将根据用户输入发送到调制解调器,我想在程序执行期间保持 telnet 连接打开。可能值得注意的是,这是我第一次使用 Python,来自 C# 和 Java 背景,所以我仍在努力掌握它的窍门。
无论如何,我想我对 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 的做事方式。