我有一个数组,它由我可以调用的一组变量组成。
所以通常我会在导入后使用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
edit:我需要通常读作array.data['variable']的东西。要像self.array.data['self.variable'].
如果self.variable
是包含属性名称的字符串,则使用getattr
:
getattr(self.array, self.variable)
这里不清楚你的意思(至少对我来说(。但基本上,self
只是类方法中实例的常规名称。它有本地作用域,所以你不能从外部引用它。它是实例,从外部你应该可以简单地执行self.array.variable
。
但是,您似乎想要索引样式访问?您可以通过定义__getitem__
特殊方法来实现这一点。然后你可以做myobj["x"]
。