变量可以有同义词吗?

时间:2016-10-10 07:25:20

标签: python python-2.7 variables dictionary

我有一个非常大的字符串,这使我可以访问另一个类中另一个字典中的字典。

self.app_data.ip_table[self.app_data.cfg.MY_IP]['tasks']

如果我按字符串的顺序使用这个字典,我可以写这样的东西(我想是这样的):

with self.app_data:
    ...

但我在所有文件的不同行中使用此变量,我不能使用with指令。我认为,在C ++中我们可以使用像#define VAR very.long.access.path.to.variable这样的东西。

在python中有类似的东西吗?我可以缩短变量访问名称吗?

P.S。 该long-access-name变量随其他线程而变化。我不需要将它分配给另一个变量。我正在寻找代码

的短文本

1 个答案:

答案 0 :(得分:1)

可能使用属性吗?

class C:
    def __init__(self, ...):
        self.app_data = get_app_data()

    @property
    def var(self):
        return self.app_data.very['long'].path.here

    @var.setter
    def var(self, value):
        self.app_data.very['long'].path.here = value

c = C()
print c.var
c.var = 1337

如果您希望在多个线程中读取/写入此数据,也可以在内部使用互斥锁创建var_threadsafe属性。