【发布时间】:2014-03-24 21:12:57
【问题描述】:
我有这个代码:
def check_karma(needed_karma, user_karma):
# check karma or exit
return True
def hello_world():
user_karma = 50
check_karma(20, user_karma)
print "Hello World"
我可以在这里使用装饰器吗?像这样:
...
@check_karma(20, user_karma)
def hello_world():
user_karma = 50
print "Hello World"
我不知道我是否可以访问函数内部的数据,因为我在测试脚本中成功编写了@check_karma(20)。
【问题讨论】:
-
用参数制作装饰器并不是那么简单...stackoverflow.com/questions/5929107/…
-
不,装饰器不能访问局部变量。你可以让
user_karma成为hello_world()的一个参数,否则你想做的事情是不可能的。 -
check_karam看起来像我经常使用的assert