我正在使用for循环迭代一个开关列表。对于switch_list中的每个设备,我调用function1。然后,function1调用function2。然而,这是处理结束的时候。我需要返回for循环,以便处理switch2、switch3等......
下面是输出:
- 我们是主流 *
- 我们在function1中,设备名称为switch1 *
- 我们处于function2中,设备名称为switch1 *
下面是我的代码:
switch_list = ['switch1', 'switch2']
def main():
print('We are in main')
for device in switch_list:
main_action = function1(device)
return(device)
def function1(device):
print(f'We are in function1 and the device name is {device}')
function1_action = function2(device)
def function2(device):
print(f'We are in function2 and the device name is {device}')
if __name__ == '__main__':
main()
如有任何协助,不胜感激。
2条答案
按热度按时间xlpyo6sf1#
这是因为你的main函数中的
return()
语句在for循环中,如果你把它从for循环中去掉,你的问题就解决了。return()
表示函数的结束,所以当代码看到return语句时,它会退出main(),并且只得到第一个设备的输出。由于您正在运行for循环,因此可以创建一个设备列表,并在循环完成后传递它。
大概是这样的
sauutmhj2#
正如 Alexandria 所建议的,return关键字退出函数,将提供的值返回到调用方法的位置。
例如