指向成员的 C++ 指针的 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 中执行此操作?我想我们可以使用某种反射还是有更好的方法?


qq_笑_17
浏览 132回答 1
1回答

Smart猫小萌

要在 Python 中执行相同的操作,您可以使用带有成员名称而不是成员指针的getattrand函数:setattrdef do_something_to_member(member_name, objects):&nbsp; &nbsp; for object in objects:&nbsp; &nbsp; &nbsp; &nbsp; member_value = getattr(object, member_name)&nbsp; &nbsp; &nbsp; &nbsp; setattr(object, member_name, member_value + 1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python