Во-первых, я настоятельно рекомендую не делать это таким образом. Вместо этого выполните:
hosts = {
"host_ip": '192.168.100.10',
"router_ip": '192.168.100.254',
"fs_ip": '192.168.200.10',
}
Затем вы можете просто импортировать модуль и ссылаться на него как обычно - это дает обычный, стандартный способ доступа к этим данным из любого кода Python:
import config
for host, ip in config.hosts.iteritems():
...
Если вы обращаетесь к переменным напрямую, вы получите кучу вещей, которые вам не нужны: встроенные (__builtins__
, __package__
и т. Д.); все, что было импортировано при настройке других переменных и т. д.
Вы также захотите убедиться, что контекст, в котором вы работаете, отличается от того, в котором вы перебираете переменные, или вы будете создавать новые переменные в locals () (или vars () или globals ()), пока вы итерируете его, и вы получите "RuntimeError: dictionary changed size during iteration"
.