0

我有一个数组,它由一堆我可以调用的变量组成。

所以通常我会在导入后使用 array.x 调用 x 。现在我将它们设置为两个对象,用户可以在特征 GUI 中设置它们。我将如何使用“自我”提取相同的信息?

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'] 这样的东西。

4

2 回答 2

1

如果self.variable是包含属性名称的字符串,请使用getattr

getattr(self.array, self.variable)
于 2013-01-18T16:55:05.920 回答
0

目前尚不清楚您在这里的意思(至少对我而言)。但基本上,这self只是类方法中实例的常规名称。它具有本地范围,因此您不会从外部以这种方式引用它。就是这样,从外面你应该可以简单地做self.array.variable

但是,您似乎想要索引样式访问?您可以通过定义__getitem__特殊方法来做到这一点。然后你可以做myobj["x"]

于 2013-01-18T17:38:00.317 回答