Python:如何将多个参数传递给属性获取器?
|
考虑以下示例:
class A:
@property
def x(self): return 5
因此,当然叫a = A(); a.x
将返回5
但是,假设您希望能够修改属性x。
这样,例如:
class A:
@property
def x(self, neg = False): return 5 if not neg else -5
叫with4ѭ
这将引发TypeError:\'int\' object is not callable
,这很正常,因为我们的x
被评估为evaluated2ѭ。
因此,我想知道如果可能的话,如何将一个参数传递给属性获取器。
没有找到相关结果
已邀请:
7 个回复
甲车劲
根据您使用的确切方式,这可能不是一个好主意(但是,如果我在所检查的任何代码中都遇到此模式,我希望在注释中看到一个很好的理由)
臀博
,则将使用
而不是
访问该属性。 创建属性后,很难直接调用基础函数。 如果要传递参数,请将方法命名为
,不要将其设为属性:
如果要创建设置器,请按以下步骤进行:
稼悸
脖呐
,就好像它是一个函数:
。考虑到这一点,为什么不仅仅将其定义为一个函数呢?
马口
正如其他人提到的那样,不建议这样做。
旅牢斯讲
味芯憨
然后,我有以下测试成功通过:
因此,对于这个问题,我们可以尝试: