首先,我了解了Python装饰器是什么以及它们是如何工作的。我希望它能这样做:
def age_over_18(go_enjoy_yourself):
def go_home_and_rethink_your_life():
return 'So you should go home and rethink your life.'
return go_enjoy_yourself if age_stored_somewhere > 18 else go_home_and_rethink_your_life
@age_over_18
def some_porn_things():
return '-Beep-'
但是我发现修饰符是在Python第一次读取函数时执行的,这意味着这个函数实际上什么也不做。你知道吗
我知道我可以写下这样的东西:
def some_porn_things():
if age_stored_somewhere > 18:
...
else:
...
但我只是觉得装饰师优雅易懂,所以问题是:
在调用函数之前,是否可以延迟装饰程序的执行?
诀窍就是确保检查发生在你的内部函数中,而不是外部函数。就你而言:
相关问题 更多 >
编程相关推荐