我正在使用 NamedTuple 来定义要使用 telnetlib 连接的服务器。然后我创建了一个类,它定义了与服务器的连接,在类中包含服务器详细信息和连接方法。然后在课堂之外,我想将连接方法与服务器的 NamedTuple 一起用作连接凭据。但是,我不断收到连接方法缺少 NamedTuple 参数的错误。
我尝试将 NamedTuple 拉到类之外,尝试将 Namedtuple 放在类的 init 方法中。似乎没有任何效果。
这是我的代码:
import telnetlib
from typing import NamedTuple
class Unit(NamedTuple):
name: str
ip: str
port: str
def printunit(self, unit):
print(unit.name)
print(unit.ip)
print(unit.port)
class TnCnct:
Server1 = Unit("Server1", "1.1.1.1", "23")
Server2 = Unit("Server2", "2.2.2.2", "23")
Server3 = Unit("Server3", "3.3.3.3", "23")
def __init__(self):
pass
def cnct(self, u):
try:
tn = telnetlib.Telnet(u.ip, u.port, 10)
tn.open(u.ip, u.port)
tn.close()
response = u.name + " " + "Success!"
except Exception as e:
response = u.name + " " + "Failed!"
print(e)
finally:
print(response)
TnCnct.cnct(TnCnct.Server1)
我得到的确切错误:
TypeError: cnct() missing 1 required positional argument: 'u'
不负相思意
慕妹3242003
相关分类