Eu acho que o desafio aqui não é invocar global ()
Eu pessoalmente definiria uma lista para suas variáveis (dinâmicas) a serem mantidas e, em seguida, acrescentaria a ela dentro de um loop for. Em seguida, use um loop for separado para visualizar cada entrada ou até executar outras operações.
Aqui está um exemplo - eu tenho vários comutadores de rede (digamos entre 2 e 8) em várias filiais. Agora, preciso garantir que tenho uma maneira de determinar quantos comutadores estão disponíveis (ou teste de ping ativo) em qualquer ramificação e executar algumas operações neles.
Aqui está o meu código:
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()
A saída é:
BR123SW01
BR123SW02
BR123SW03
BR123SW04
BR123SW05
BR123SW06
BR123SW07