【发布时间】:2021-12-16 18:17:24
【问题描述】:
运行代码时出现错误“UnboundLocalError: local variable 'start' referenced before assignment”
def generateDestinationIP(start, end):
first = 10
second = 0;
third = 0;
#eg, ip = "10.0.0.64"
ip = ".".join([str(first), str(second), str(third), str(randrange(start,end))])
return ip
def main(argv):
#print argv
#getopt.getopt() parses command line arguments and options
try:
opts, args = getopt.getopt(sys.argv[1:], 's:e:', ['start=','end='])
except getopt.GetoptError:
sys.exit(2)
for opt, arg in opts:
if opt =='-s':
start = int(arg)
elif opt =='-e':
end = int(arg)
if start == '':
sys.exit()
if end == '':
sys.exit()
如何解决这个问题?
【问题讨论】:
-
请先提取一个minimal reproducible example,然后在线搜索错误信息。
-
您的
for循环不一定为start赋值。如果不存在,则当代码到达if start == '':测试时,start不存在。通过初始化start来修复它。并考虑使用argparse而不是getopt。这将通过为您进行初始化来防止错误。
标签: python networking anaconda sdn ddos