别名没有dict的python变量

时间:2016-03-05 13:43:49

标签: python reference

我只是实现了一个类,它需要一个属性来存储另一个属性的引用作为游标。请参阅以下内容:

class foo:
    def __init__(self):
        self.egg=[4,3,2,1,[4,3,2,1]]
        self.spam=#some reference or pointer analog represent self.egg[4][2], for example

    def process(self):
        # do something on self.egg[self.spam]
        pass

我不想要dict因为self.spam应该只代表一个项目,并且使用dict我将不得不消耗不确定的不必要的内存。是否有一些pythonic方法可以实现上面的self.spam

1 个答案:

答案 0 :(得分:1)

您可以将索引存储在self.spam中,并使用属性从self.egg访问self.spam的当前值:

class Foo(object):
    def __init__(self):
        self.egg = [4,3,2,1,[4,3,2,1]]
        self.spam = (4,2)

    def process(self):
        # do something on self.egg[self.spam]
        print(self.eggspam)
        pass

    @property
    def eggspam(self):
        result = self.egg
        for item in self.spam:
            result = result[item]
        return result

f = Foo()
f.process()
# 2

f.spam = (1,)
f.process()
# 3