-3
如何使用的方法裝飾,把它的類外直接返回一個內存地址:<function decor at 0x104e167b8>
,並把它裏面提出了一個如何在方法上使用裝飾器?
TypeError: 'NoneType' object is not callabl
我也嘗試添加*args
因爲在一個self
該方法的參數。
如何使用的方法裝飾,把它的類外直接返回一個內存地址:<function decor at 0x104e167b8>
,並把它裏面提出了一個如何在方法上使用裝飾器?
TypeError: 'NoneType' object is not callabl
我也嘗試添加*args
因爲在一個self
該方法的參數。
類中的一個裝飾的樣本實現是這樣的:
class Foo:
def __init__(self):
pass
def decor(function):
def wrap(*args, **kwargs):
# Whatever your decorator does here
return function(*args, **kwargs)
return wrap
@decor
@staticmethod
def bar():
pass
或致電本上的Foo
一個實例:
foo = Foo()
foo.bar()
如果你的裝飾需要self
訪問:
class Foo:
def __init__(self, spam):
if spam is not None:
self.spam = spam
def require_spam(function):
def wrap(self, *args, **kwargs):
try:
self.spam
except AttributeError:
return
return function(self, *args, **kwargs)
return wrap
@require_spam
def bar(self):
pass
你可以發佈你的代碼,以便我們更好地理解你的問題嗎? – wencakisa
你能提供一些這些錯誤的代碼示例嗎? – chrki
也許在[Documentation](https://stackoverflow.com/documentation/python/229/decorators#t=201708121148482706389)中查看可能有幫助 –