python中的装饰功能或方法非常棒。
@dec2
@dec1
def func(arg1, arg2, ...):
pass
#This is equivalent to:
def func(arg1, arg2, ...):
pass
func = dec2(dec1(func))
我想知道是否可以在python中装饰变量。
@capitalize
@strip
foo = ' foo '
print foo # 'FOO'
#This is equivalent to:
foo = foo.strip().upper()
我通过搜索找不到任何关于这个主题的内容。
答案 0 :(得分:5)
不,装饰器语法仅对函数和类有效。
只需将值传递给函数:
foo = capitalize(strip(' foo '))
或用结果替换变量:
foo = ' foo '
foo = capitalize(strip(foo))
存在装饰器是因为你不能在函数调用中包装函数或类声明;您可以的简单变量。