2016-07-15 3 views
1

Теперь во многих скриптах я хочу использовать TOPOLOGY. Вместо того, чтобы писать это снова и снова, я хотел бы сохранить их в функции или что-то такое , что я могу их назвать и использовать вместо записи снова и снова во всех сценариях.Python: У меня есть глобальная декларация, которую мне нужно вызвать в разных программах на Python.

Не могли бы вы предложить несколько лучших и полезных решений?

TOPOLOGY = """ 
[type=switch name="Switch 1"] ops1 
[type=host name="Host 1" image="Ubuntu"] hs1 
[type=host name="Host 2" image="Ubuntu"] hs2 
# Links 
hs1:1 -- ops1:1 
ops1:2 -- hs2:1 
""" 

def topology_1switch_2host(topology): 
. 
. 
. 
. 

ответ

2

Вы можете разместить константы в модуле и импортировать его из сценария:

модуль констант: (constants.py)

""" 
This module contains the constants 
constants.py 
""" 

# a constants useful in topology 
TOPOLOGY = """ 
[type=switch name="Switch 1"] ops1 
[type=host name="Host 1" image="Ubuntu"] hs1 
[type=host name="Host 2" image="Ubuntu"] hs2 
# Links 
hs1:1 -- ops1:1 
ops1:2 -- hs2:1 
""" 

Импорт константы в вашем скрипте:

""" 
This module contains my script that uses constants 
myscript.py 
""" 


from constants import TOPOLOGY 


def topology_1switch_2host(): 
    """uses the constant TOPOLOGY 
    """ 
    . 
    . 
    . 
+0

спасибо. попробует это – user2856923

0

Вы также можете создать класс и добавить переменную в качестве атрибута класса.

Class Topo: 
    def __init__(self): 
     self.Topo = """...""" 

    def topology_1switch_2host(self): 
     Topology = self.Topo 

Если ваш список констант становится достаточно длинным, это может иметь смысл рассолить или json.

Смежные вопросы