我正在尝试编写一些目前看起来像这样的 Python 代码:
if validator("foo", "bar"):
self.a = accessor("foo", "bar")
if validator("xxx", "yyy"):
self.b = accessor("xxx", "yyy")
这都包含在一个类方法中,self.a和self.b是实例变量。
我想避免为 validator() 和 accessor() 重复所有这些参数。如果 python 有传递引用我会做这样的事情:
def validate_and_access(self, target_ref, parm1, parm2)
if validator(parm1, parm2):
target_ref = accessor(parm1, parm2)
鉴于我没有传递引用,还有其他方法吗?我考虑过使用 getattr() 按名称作为字符串访问实例变量,或者甚至可能定义一个字典来包含实例变量,但这两种方法似乎都过分而且相当笨拙。
请您参考如下方法:
根据你的引用传递示例,你不能做这样的事情吗?
def validate_and_access(self, target_ref, parm1, parm2)
if validator(parm1, parm2):
setattr(self, target_ref, accessor(parm1, parm2))
