Python版本的C++指针到成员?

2024-09-29 10:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑这个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中我们将如何做到这一点?我想我们可以使用某种反射,或者有更好的方法吗


Tags: 代码forsizeobjectspublicclassintstd
1条回答
网友
1楼 · 发布于 2024-09-29 10:30:15

要在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)

相关问题 更多 >