0

在以下代码段中未调用未​​来:

def main():
    if not amiadmin(): 
        print ("You are not superuser")
        raise PermissionError
    dumpfile = open('filename', mode='w')
    fileiolock = threading.RLock()
    (ip,) = struct.unpack ("!L", socket.inet_aton("""some ip address"""))
    # sorry, this hack requires Internet addresses be integers
    ips = genlistofipaddrs(ip, 8)
    ips_converted = [ socket.inet_ntoa(struct.pack ("!L", ip)) for ip in ips ]
    ping = icmp(0)
    # reverse conversion from integers
    executor = concurrent.futures.ThreadPoolExecutor(max_workers=ThreadLimit)
    with executor:
         futs = [ executor.submit(IPScanner, ping, ip, dumpfile, fileiolock) 
                  for ip in ips_converted]
    concurrent.futures.wait(futs,return_when=ALL_COMPLETED)
    print ("Good job")

我的真实代码中有一个真正的 B 级 IPv4 地址,而不是some ip address. 为什么未来没有被调用?没有引发异常,程序成功退出。

4

1 回答 1

0

根据@dano 的评论,将 executor.submit(IPScanner, (ping, ip, dumpfile, fileiolock)) 替换为 executor.submit(IPScanner, ping, ip, dumpfile, fileiolock) ,现在可以使用了。

于 2015-08-11T14:20:36.580 回答