4605得票36回答
@staticmethod vs @classmethod在Python中的区别

使用@staticmethod修饰的方法和使用@classmethod修饰的方法有什么区别?

3146得票22回答
如何创建函数装饰器并将它们链接在一起?

我该如何在Python中创建两个装饰器以实现以下功能?@make_bold @make_italic def say(): return "Hello" 调用 say() 应该返回:"<b><i>Hello</i><...

1349得票14回答
Python中的@property修饰器是如何工作的?

我希望了解内置函数 property 的工作原理。让我感到困惑的是,property 也可以用作修饰器,但只有在作为内置函数使用时才需要传入参数,而作为修饰器使用时则不需要。这个例子来自文档:class C: def __init__(self): self._x = ...

281得票8回答
具有self参数的类方法装饰器?

我如何将一个类字段作为参数传递给类方法的装饰器?我想要做的事情类似于:class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr",...

182得票5回答
`staticmethod`和`abc.abstractmethod`:它们能融合吗?

在我的Python应用程序中,我想要创建一个既是staticmethod又是abc.abstractmethod的方法。我该怎么做? 我尝试应用这两个装饰器,但它们不能共存。如果我这样做:import abc class C(object): __metaclass__ = abc....

162得票2回答
装饰器执行顺序

def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>...

152得票10回答
如何在Python中使用属性特性的现实世界示例?

我对如何在Python中使用@property很感兴趣。我已经阅读了Python文档和那里的示例,但在我看来,那只是一个玩具代码:class C(object): def __init__(self): self._x = None @property ...

135得票6回答
如何向Python装饰器传递额外的参数?

我有一个如下的装饰器。def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def ...

94得票10回答
Python functools lru_cache与实例方法:释放对象

如何在类中使用functools.lru_cache而不会泄漏内存? 在下面的最小示例中,foo实例尽管超出作用域且没有引用者(除了lru_cache),但仍无法释放。from functools import lru_cache class BigClass: pass class ...

80得票2回答
使@lru_cache忽略一些函数参数

如何让@functools.lru_cache装饰器忽略某些函数参数以便于缓存键? 例如,我有一个函数长这样: def find_object(db_handle, query): # (omitted code) return result 如果我只是这样应用lru_...