考慮這個 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 中執行此操作?我想我們可以使用某種反射還是有更好的方法?
1 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
要在 Python 中執行相同的操作,您可以使用帶有成員名稱而不是成員指針的getattrand函數: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)
添加回答
舉報
0/150
提交
取消