Python在一个d中列出和循环

2024-05-14 09:39:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着把def wfsc乩pod1和wfsc乩ip放在同一个def中。我不太确定如何解决这个问题。我希望wfsc_pod1显示名称、子网和网关的所有信息。然后wfsc_ip显示其下方的ip地址。当我运行它时,也会得到一个None值。不知道为什么。任何更像Python的东西都会更受欢迎。在

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()

Tags: nameselfip名称信息网关defnetwork
3条回答

首先,您可能想这样写wfsc_pod1

def wfsc_pod1(self):
    return "%s\t%s\t%s" % (self.name[0], self.subnet[0], self.gateway[0])

然后像这样调用wfsc_ip

^{pr2}$

如果要组合wfsc_pod1wfsc_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中添加print语句,并且在不使用print语句的情况下调用它:

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

OutageAddress.wfsc_ip返回{},因为它没有return语句。在

得到一个None,因为这是wfsc_ip返回的结果。不返回任何其他值的函数/方法返回None。在

相关问题 更多 >

    热门问题