Python 中装饰器的冗余函数调用
Redundant Function Call for Decorators in Python
所以我在看某个 class,它具有以下 属性 功能。但是,属性 方法本身并不描述该过程,而是调用另一个函数来执行此操作,如下所示:
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")
如果它是某种模式,我想了解什么?我在另一个 class 中也看到了类似的事情,其中带有 属性 装饰器的方法只是简单地调用了另一个在开头带有下划线的同名方法。
注意:我知道什么是 属性 装饰器,但不明白为什么这种特殊的下划线方式旨在实现。
实际上,属性 被用作调用具有一组固定参数的方法的快捷方式。作为一个稍微不同的例子,考虑
class Foo():
@property
def params(self):
return self._params(1, "foo", True)
def _params(self, x, y, z):
...
f = Foo()
现在,f.params
是 f._params(1, "foo", True)
的快捷方式。这是否值得做取决于 _params
是否用于 其他 而不是实现 params
getter 的主体。如果不是,那么编写这样的代码就没有什么实际意义了。
所以我在看某个 class,它具有以下 属性 功能。但是,属性 方法本身并不描述该过程,而是调用另一个函数来执行此操作,如下所示:
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")
如果它是某种模式,我想了解什么?我在另一个 class 中也看到了类似的事情,其中带有 属性 装饰器的方法只是简单地调用了另一个在开头带有下划线的同名方法。 注意:我知道什么是 属性 装饰器,但不明白为什么这种特殊的下划线方式旨在实现。
实际上,属性 被用作调用具有一组固定参数的方法的快捷方式。作为一个稍微不同的例子,考虑
class Foo():
@property
def params(self):
return self._params(1, "foo", True)
def _params(self, x, y, z):
...
f = Foo()
现在,f.params
是 f._params(1, "foo", True)
的快捷方式。这是否值得做取决于 _params
是否用于 其他 而不是实现 params
getter 的主体。如果不是,那么编写这样的代码就没有什么实际意义了。