Я думаю, что проблема здесь не в том, чтобы вызывать global ()
Я бы лично определил список для ваших (динамических) переменных, которые будут храниться, а затем добавить к нему в цикле for. Затем используйте отдельный цикл for для просмотра каждой записи или даже для выполнения других операций.
Вот пример - у меня есть несколько сетевых коммутаторов (скажем, от 2 до 8) в разных ветвях. Теперь мне нужно убедиться, что у меня есть способ определить, сколько коммутаторов доступно (или работает - тест ping) в любой данной ветке, а затем выполнить с ними некоторые операции.
Вот мой код:
import requests
import sys
def switch_name(branchNum):
# s is an empty list to start with
s = []
#this FOR loop is purely for creating and storing the dynamic variable names in s
for x in range(1,8,+1):
s.append("BR" + str(branchNum) + "SW0" + str(x))
#this FOR loop is used to read each of the switch in list s and perform operations on
for i in s:
print(i,"\n")
# other operations can be executed here too for each switch (i) - like SSH in using paramiko and changing switch interface VLAN etc.
def main():
# for example's sake - hard coding the site code
branchNum= "123"
switch_name(branchNum)
if __name__ == '__main__':
main()
Выход:
BR123SW01
BR123SW02
BR123SW03
BR123SW04
BR123SW05
BR123SW06
BR123SW07