Python 成员的 c++ 指针版本?

Python version of c++ pointer to member?

考虑这个 C++ 代码:

class TestClass{
public:
  int memberA = 0;
  int memberB = 0;  
};


void doSomethingToMember(int TestClass::* memberPointer, std::vector<TestClass> objects){
  for(int i = 0; i < objects.size(); i++)
    (objects[i].*memberPointer)++;
}

我们有一个接受多个对象的函数,我们想对使用 memberPointer 定义的成员执行操作。我们如何在 python 中做到这一点?我想我们可以使用某种反射还是有更好的方法?

要在 Python 中执行相同的操作,您可以使用 getattrsetattr 函数以及 成员名称 而不是成员指针:

def do_something_to_member(member_name, objects):
    for object in objects:
        member_value = getattr(object, member_name)
        setattr(object, member_name, member_value + 1)