Python中装饰器的冗余函数调用

因此,我正在研究具有以下属性功能的特定类。但是,属性方法本身并不描述过程,而是调用另一个函数来做到这一点,如下所示:

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")

我想了解的是某种模式吗?我在另一个类中也看到了类似的情况,其中带有属性装饰器的方法只是在开始时简单地调用了另一个具有下划线的同名方法。 注意:我确实知道什么是属性装饰器,但不明白为什么这种强调方式旨在实现。

yechuan09 回答:Python中装饰器的冗余函数调用

实际上,该属性被用作调用带有固定参数集的方法的快捷方式。作为一个稍微不同的示例,请考虑

class Foo():

    @property
    def params(self):
        return self._params(1,"foo",True)

    def _params(self,x,y,z):
        ...

f = Foo()

现在,f.paramsf._params(1,True)的快捷方式。这是否值得做取决于是否将_params用于除实现params吸气体的主体之外的其他任何用途。如果不是这样,那么编写这样的代码毫无意义。

本文链接:https://www.f2er.com/3041541.html

大家都在问