class Account:
def __init__(self, **kwargs):
[...]
self._is_valid = True
def valid_before_logout(self, func):
def execute(*args, **kwargs):
if self._is_valid:
return func(*args, **kwargs)
else:
raise AccountOperatingError('the account is already invalidated or signed out')
return execute
@valid_before_logout
def refresh(self):
[...]
@valid_before_logout
def invalidate(self):
self._is_valid = False
[...]
@valid_before_logout
def signout(self):
self._is_valid = False
[...]
类Account
里面有一个方法valid_before_logout
用作装饰器,作用是在执行任何类方法之前检查self._is_valid
,如果为False
就抛出异常。
不过在导入这个模块的时候出错:
>>> import account
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "account.py", line 1, in <module>
class Account:
File "account.py", line 15, in <module>
def refresh(self):
TypeError: valid_before_logout() missing 1 required positional argument: 'func'
>>>
请问这是什么原因?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.