我正在尝试将def wfsc_pod1和wfsc_ip放入相同的def中。我不太确定如何处理这个问题。我希望wfsc_pod1显示名称,子网和网关的所有信息。然后wfsc_ip显示它下面的IP地址。当我运行它时,我也得到一个无值。不知道为什么。任何更多的pythonic更受欢迎。
class OutageAddress:
subnet = ["255.255.255.0", "255.255.255.1"]
# Gateway order is matched with names
gateway = ["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4",
"192.168.1.5", "192.168.1.6", "192.168.1.7", "192.168.1.8",
"192.168.1.9"]
name = ["LOC1", "LOC2", "LOC3", "LOC4",
"LOC5", "LOC6", "LOC7", "LOC8",
"LOC9"]
def wfsc_pod1(self):
wfsc_1 = "%s\t %s\t %s\t" % (network.name[0],network.subnet[0],network.gateway[0])
return wfsc_1
def wfsc_ip(self):
for ip in range(100,110):
ip = "192.168.1."+str(ip)
print ip
network = OutageAddress()
print network.wfsc_pod1()
print network.wfsc_ip()
答案 0 :(得分:1)
首先,您可能打算像这样写wfsc_pod1
:
def wfsc_pod1(self):
return "%s\t%s\t%s" % (self.name[0], self.subnet[0], self.gateway[0])
并按照以下方式致电wfsc_ip
:
network.wfsc_ip() # no print
如果要合并wfsc_pod1
和wfsc_ip
,可以执行以下操作:
def wfsc_combined(self):
output = []
output.append("%s\t%s\t%s" % (self.name[0], self.subnet[0], self.gateway[0]))
for ip in range(100,110):
output.append("192.168.1.%d" % ip)
return '\n'.join(output)
并使用print语句调用此函数。
但是,更好的方法(IMO)是在wfsc_combined
内添加打印语句并在没有打印语句的情况下调用它:
def wfsc_combined(self):
print "%s\t%s\t%s" % (self.name[0], self.subnet[0], self.gateway[0])
for ip in range(100,110):
print "192.168.1.%d" % ip
答案 1 :(得分:0)
OutageAddress.wfsc_ip
返回None
,因为它没有返回语句。
答案 2 :(得分:0)
你得到None
,因为这是wfsc_ip
返回的内容。不返回任何其他内容的函数/方法返回None
。
答案 3 :(得分:0)
您从None
获得print network.wfsc_ip()
因为wfsc_ip
没有返回任何内容,这与返回None
相同 - 什么 else 你是否希望通过打印一个不返回任何内容的函数的值来获得?!
在显示内容(例如print
语句,如wfsc_ip
)和返回之间,你似乎很容易陷入困境之中信息,如wfsc_pod1
所做的那样。除非你澄清这种混乱,否则没有人可以真正帮助你。