我正在尝试编写一些目前看起来像这样的Python代码:
if validator("foo", "bar"):
self.a = accessor("foo", "bar")
if validator("xxx", "yyy"):
self.b = accessor("xxx", "yyy")
Run Code Online (Sandbox Code Playgroud)
这都包含在类方法中,self.a和self.b是实例变量.
我想避免所有这些重复的validator()和accessor()的参数.如果python有pass-by-reference,我会做这样的事情:
def validate_and_access(self, target_ref, parm1, parm2)
if validator(parm1, parm2):
target_ref = accessor(parm1, parm2)
Run Code Online (Sandbox Code Playgroud)
鉴于我没有传递参考,还有另一种方法吗?我考虑使用getattr()通过名称作为字符串访问实例变量,或者甚至可能定义包含实例变量的字典,但这两者看起来都有点过分而且相当笨重.
根据您的参考传递示例,您可以不做这样的事情吗?
def validate_and_access(self, target_ref, parm1, parm2)
if validator(parm1, parm2):
setattr(self, target_ref, accessor(parm1, parm2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |