[英]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 中执行相同的操作,您可以使用带有成员名称而不是成员指针的getattr
和setattr
函数:
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.