У меня есть класс, похожий на следующий:
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]; }
}
Я хочу, чтобы следующий код Python работал:
a = A()
a.x[0] = 4
print a.x[0]
Я думал о __setattr__
и __getattr__
, но не уверен, что это работает. Альтернативой является реализация следующего Python:
a = A()
a['x', 0] = 4
print a['x', 0]
не так хорошо, как предыдущий, но может быть проще реализовать (с __slice__
? ).
PS. Я использую sip для привязки.
Спасибо.