繁体   English   中英

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)++;
}

我们有一个 function 接受多个对象,我们想对我们使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM