0
我有這樣的代碼:蟒蛇裝飾越來越函數的變量
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)。
帶參數使得裝飾沒有那麼簡單...... http://stackoverflow.com/questions/5929107/python-decorators -with-parameters – Dunno
不,裝飾者不能訪問局部變量。你可以將'user_karma'作爲'hello_world()'的參數,否則你想做的事情是不可能的。 – Bakuriu
'check_karam'看起來像我經常使用'assert' – cmd