我有一个类似于以下的类:
class A {
vector<double> v;
double& x(int i) { return v[2*i]; }
double& y(int i) { return v[2*i+1]; }
double x(int i) const { return v[2*i]; }
double y(int i) const { return v[2*i+1]; }
}
Run Code Online (Sandbox Code Playgroud)
我想让以下Python代码工作:
a = A()
a.x[0] = 4
print a.x[0]
Run Code Online (Sandbox Code Playgroud)
我在想的__setattr__和__getattr__,但如果它的工作原理不清楚.另一种方法是实现以下Python:
a = A()
a['x', 0] = 4
print a['x', 0]
Run Code Online (Sandbox Code Playgroud)
不如前一个好,但可能更容易实现(用__slice__?).
PS.我正在使用sip进行绑定.
谢谢.