【问题标题】:Can variables be decorated? [closed]变量可以修饰吗? [关闭]
【发布时间】:2015-12-11 21:55:09
【问题描述】:

用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()

我无法通过搜索找到有关该主题的任何内容。

【问题讨论】:

标签: python decorator python-decorators


【解决方案1】:

不,装饰器语法仅对函数和类有效。

只需将值传递给函数:

foo = capitalize(strip(' foo '))

或者用结果替换变量:

foo = ' foo '
foo = capitalize(strip(foo))

装饰器之所以存在,是因为您不能只在函数调用中包装函数或类声明;你可以的简单变量。

【讨论】:

  • 我猜他们想严格遵守方法,然后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多