我只是实现了一个类,它需要一个属性来存储另一个属性的引用作为游标。请参阅以下内容:
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
?
答案 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