可以使用Python装饰器返回非功能对象吗?

安基·兰詹(Ankit ranjan)

在Python中,您可以编写一个装饰器来返回非功能对象,例如字符串或字典吗?例如,考虑以下代码:

def decorator(function):
    return str(function)

@decorator
def foo(bar):
    return bar + 1

该代码有效,但是在社区中是否被接受?

米尔森

引用PEP 0318:

在Python 2.4a2中实现的函数装饰器的当前语法为:

@dec2
@dec1
def func(arg1, arg2, ...):
    pass

等效于:

def func(arg1, arg2, ...):
    pass
func = dec2(dec1(func))

没有对变量func进行中间分配。

因此,要回答您的问题,您可以让装饰器返回不是函数的东西,并且行为已完全定义。否则,它将不等同于上面的代码。

但是,这样做还非常不清楚。人们期望函数修饰符返回函数(或至少是可调用对象),而类修饰符则返回类。如果您偏离该模式,则后果自负-如果您的邻居决定出于愤怒和沮丧而击倒小隔间,那就是您的问题:)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以使用python装饰器来更改函数返回的函数的行为吗?

来自分类Dev

我们可以使用装饰器设计任何功能吗?

来自分类Dev

Python - 我可以为此使用装饰器吗?

来自分类Dev

是否可以使用装饰器在Python中进行“扩展”时间监视?

来自分类Dev

可以使用[in]参数返回数据吗?

来自分类Dev

可以在Typescript中装饰装饰器吗?

来自分类Dev

可以使用临时的stringstream对象吗?

来自分类Dev

我可以使用reinterpret_cast销毁非动态分配的对象吗?

来自分类Dev

我可以使用非日期类型作为Julia中TimeSeries对象的时间索引吗?

来自分类Dev

我可以在python中使用装饰器包装完整的类吗?

来自分类Dev

如何使功能对象属性成为非功能对象属性?

来自分类Dev

如何使功能对象属性成为非功能对象属性?

来自分类Dev

我可以使用数组迭代器执行与for循环相同的功能吗?

来自分类Dev

我可以使用迭代器吗?

来自分类Dev

我可以使用折叠功能实现包装功能吗?

来自分类Dev

python装饰器会立即调用返回的回调吗?

来自分类Dev

可以在create-react-app中使用装饰器吗?

来自分类Dev

使用属性装饰器的Getter返回对象没有属性

来自分类Dev

我可以使用JQuery选择器从特定的节点对象中进行选择吗?

来自分类Dev

泽西岛客户可以使用JSON将JAXB对象发布到服务器吗?

来自分类Dev

我可以使用JQuery选择器从特定的节点对象中进行选择吗?

来自分类Dev

Python中可以存在非对象吗?

来自分类Dev

在开发Python扩展模块时可以使用最新的C2x语言功能吗?

来自分类Dev

您可以使用Dapper刷新现有的对象引用,而不是总是返回新的对象引用吗?

来自分类Dev

我可以使用assign复制对象的对象吗?

来自分类Dev

功能对象原型

来自分类Dev

处理功能对象

来自分类Dev

给功能对象赋值

来自分类Dev

我可以使用python CSP吗?

Related 相关文章

  1. 1

    可以使用python装饰器来更改函数返回的函数的行为吗?

  2. 2

    我们可以使用装饰器设计任何功能吗?

  3. 3

    Python - 我可以为此使用装饰器吗?

  4. 4

    是否可以使用装饰器在Python中进行“扩展”时间监视?

  5. 5

    可以使用[in]参数返回数据吗?

  6. 6

    可以在Typescript中装饰装饰器吗?

  7. 7

    可以使用临时的stringstream对象吗?

  8. 8

    我可以使用reinterpret_cast销毁非动态分配的对象吗?

  9. 9

    我可以使用非日期类型作为Julia中TimeSeries对象的时间索引吗?

  10. 10

    我可以在python中使用装饰器包装完整的类吗?

  11. 11

    如何使功能对象属性成为非功能对象属性?

  12. 12

    如何使功能对象属性成为非功能对象属性?

  13. 13

    我可以使用数组迭代器执行与for循环相同的功能吗?

  14. 14

    我可以使用迭代器吗?

  15. 15

    我可以使用折叠功能实现包装功能吗?

  16. 16

    python装饰器会立即调用返回的回调吗?

  17. 17

    可以在create-react-app中使用装饰器吗?

  18. 18

    使用属性装饰器的Getter返回对象没有属性

  19. 19

    我可以使用JQuery选择器从特定的节点对象中进行选择吗?

  20. 20

    泽西岛客户可以使用JSON将JAXB对象发布到服务器吗?

  21. 21

    我可以使用JQuery选择器从特定的节点对象中进行选择吗?

  22. 22

    Python中可以存在非对象吗?

  23. 23

    在开发Python扩展模块时可以使用最新的C2x语言功能吗?

  24. 24

    您可以使用Dapper刷新现有的对象引用,而不是总是返回新的对象引用吗?

  25. 25

    我可以使用assign复制对象的对象吗?

  26. 26

    功能对象原型

  27. 27

    处理功能对象

  28. 28

    给功能对象赋值

  29. 29

    我可以使用python CSP吗?

热门标签

归档