我有一个数组,它由一堆我可以调用的变量组成。
通常我在导入后使用array.x调用x。现在我将它们设置为两个对象,可以由用户在traits GUI中设置。如何使用“self”提取相同的信息?
self.array.self.variable
我只是得到属性数组没有变量'self',因为它试图引用self.array.self而不是self.array。(self.variable)。
修复此问题将使我能够使用Chaco执行此操作:
plotdata = ArrayPlotData(x = self.array.self.variable, y = self.array.self.variable)
plot = Plot(plotdata)
self.renderer = plot.plot(("x", "y"), type="scatter", color="red")[0]
self.plot = plot
编辑:我需要通常被读作array.data ['variable']。像self.array.data ['self.variable']。
答案 0 :(得分:1)
如果self.variable
是包含属性名称的字符串,请使用getattr
:
getattr(self.array, self.variable)
答案 1 :(得分:0)
目前尚不清楚你的意思(至少对我而言)。但基本上,self
只是类方法中实例的常规名称。它具有本地范围,因此您不会从外部引用它。它是实例,从外面你应该只能做self.array.variable
。
但是,您似乎想要索引样式访问?您可以通过定义__getitem__
特殊方法来实现。然后你可以myobj["x"]
。