【发布时间】:2020-03-19 23:29:54
【问题描述】:
所以我正在查看具有以下属性功能的某个类。但是,属性方法本身并没有描述过程,而是调用另一个函数来这样做:
class Foo():
@property
def params(self):
return self._params()
@property
def target(self):
return self._target()
def _params(self):
return print("hello")
def _target(self):
return print("world")
如果它是某种模式,我想了解什么?我在另一个类中也看到过类似的事情,其中带有属性装饰器的方法只是简单地调用另一个同名的方法,开头带有下划线。 注意:我确实知道什么是属性装饰器,但不明白为什么这种特定的下划线方式旨在实现。
【问题讨论】:
-
@hazirovich 我不确定你是否理解这个问题。
-
我有时会使用它,例如
_params需要一些参数。我将其称为params,该属性将是默认参数调用的快捷方式。 -
@CedricH。这样做的原因是什么,为什么不简单地使用 params 而不是创建另一个函数 _params 因为 params 已经声明为属性?
-
@GENIVI-LEARNER 像这样:创建一个带有默认值参数的函数
get_information,然后创建一个属性information,它使用默认参数集调用get_information。这样,在某些情况下,类的用户可以使用快捷方式并获得更好的外观和感觉。在您的具体情况下,有_params和_target不带参数,我看不到重点。
标签: python design-patterns decorator python-decorators