python中'@'符号用作函数修饰符

    '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行。也就是说 @A def f(): 是非法的。 只可以在模块或类定义层内对函数进行修饰,不允许修修饰一个类。 一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。
    请看以下实例:

    >>> def spamrun(fn):
    ...     def sayspam(*args):
    ...         print "spam, spam, spam"
    ...     return sayspam
    ...
    >>> @spamrun
    ... def useful(a, b):
    ...     print a**2 + b**2
    ...
    >>> useful(3,4)
    spam, spam, spam

请参考python主页中的文档:http://www.python.org/dev/peps/pep-0318/,相信会对修饰符有一个更深入的认识。

更多例子:
Listing 1. Bad decorator that does not even return function


            
>>> def spamdef(fn):
...     print "spam, spam, spam"
...
>>> @spamdef
... def useful(a, b):
...     print a**2 + b**2
...
spam, spam, spam
>>> useful(3, 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: 'NoneType' object is not callable


 

A decorator might return a function, but one that is not meaningfully associated with the undecorated function:


Listing 2. Decorator whose function ignores passed-in function

        
>>> def spamrun(fn):
...     def sayspam(*args):
...         print "spam, spam, spam"
...     return sayspam
...
>>> @spamrun
... def useful(a, b):
...     print a**2 + b**2
...
>>> useful(3,4)
spam, spam, spam

 

Finally, a better behaved decorator will in some way enhance or modify the action of the undecorated function:


Listing 3. Decorator that modifies behavior of undecorated func

        
>>> def addspam(fn):
...     def new(*args):
...         print "spam, spam, spam"
...         return fn(*args)
...     return new
...
>>> @addspam
... def useful(a, b):
...     print a**2 + b**2
...
>>> useful(3,4)
spam, spam, spam

25

 

【电子学会】2020年12月Python一级 -- 编程题37 绘制如下图形:1、画一个由两个直角三角形组成的正方形,边长为180像素;2、左上三角形填充为黄色,右下三角形填充为红色;3、设置画笔速度为1,线条为黑色;4、画图结束,隐藏并停止画笔。 阅读详情

相关推荐

基于STM32F4XX 、HAL库的SHT40-CD1B-R3温湿度传感器驱动应用C语言程序设计

define SHT40_ADDR_READ 0x8B // CD1B 读地址 ((0x45 << 1) + 1)#define SHT40_ADDR_WRITE 0x8A // CD1B 写地址 (0x45 << 1)// 初始化 I2C1 (根据 CubeMX 生成的函数)// 湿度: -6%RH + 125%RH * (raw / 2^16)// 温度: -45°C + 175°C * (raw / 2^16)// 返回值: 0=成功, 1=失败(CRC错误或I2C通信错误)

PP_Cottage的博客 212

Hi3531DV200 H.265编解码AI处理器简介1

产品简介文档版本06发布日期版权所有 :copyright: 上海海思技术有限公司 2020。保留一切权利。非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全

微信小程序排队系统demo完整源码.zip_grandmothern1j_微信_微信小程序_微信排队开源_排队系统源码

微信小程序排队的小程序非常好,大公司基本都在使用的东西可以测试下

python中@详解

python中@的含义?怎么用?

ningqingzy的博客 4万+

Python中@符号是什么意思?

Python中的@符号是装饰器的意思。Python中装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象(函数的指针)。实质:是一个函数参数:是你要装饰的函数名(并非函数调用)返回:是装饰完的函数名(也不是函数调用)作用:为已经存在的对象添加额外的功能。特点:不需要对对象做任何的代码上的变动。Python装饰器有很多经典的应用场景,比如:插入日志,性能测试,事务处理,权限校验等。装饰器是解决这类问题的绝佳设计。装饰器最大的作用就是对于我们已经

Python学习与数据挖掘 2万+

Python 中@符号解释

1、基本含义   @符号用做函数修饰符,可以在模块或者类的定义层内对函数进行修饰,出现在函数定义的前一行,不允许和函数定义在同一行。   一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错)。 2、举例说明   例子1: def wrap(f): def decorator(*args, *...

墨痕诉清风的博客 2万+

Python符号python里的@符号含义(详解)

python里的@符号含义(详解)

聆雨。 5292

【笔记2】python中@的用法

python中@的用法 @是一个装饰器,针对函数,起调用传参的作用。 有修饰和被修饰的区别,‘@function’作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义)。 代码1 def funA(desA): print(&quot;It's funA&quot;) def funB(desB): print(&quot;It's funB&quot;) @funA def funC(...

occamo的博客 8431

python之retry 及‘@‘符号用作函数修饰符

如果自动化中失败了一次,我们给机会了,成功了就既往不咎。只能说明不够稳定。那么retry该如何写呢? 小明刚开始学爬虫的时候,发现请求有很多时候不能得到正确的返回。他这样写的。 def crawl_page(url): pass def log_error(url): pass url = "" try: crawl_page(url) except: log_error(url) 发现很多时候请求一次,得到的是exception,但是多请求两次,就得到了

bigcarp的专栏 828

python符号的用法及画法_python @符号用法的简单理解

一、用作函数修饰符作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回值取代被修饰函数举个例子:1 deflog(func):2 defwrapper():3 print('...log begin...')4 func()5 print('...lo...

weixin_39797264的博客 236

Python中的“ @”(@)符号有什么作用?

我正在看一些使用@符号Python代码,但我不知道它的作用。 我也不知道要搜索什么,因为搜索Python文档时会出现,或者当包含@符号时Google不会返回相关结果。

p15097962069的博客 3万+

Python从入门到精通】--‘@‘符号的作用

Python中,@符号主要有三种用途:装饰器、矩阵乘法运算符和类型提示中的修饰符。装饰器是最常见的用途,用于修改或扩展函数/类的行为,通过@decorator_name语法实现。例如,@logger可以将函数作为参数传递给logger

我是个好人呀,O(∩_∩)O 3139

python中 @ 的含义与用法

一、表示修饰符。 可以在模块或者类的定义层内对函数进行修饰。出现在函数定义的前一行,不允许和函数定义在同一行。 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错)。 例1: def funA(desA): print("It's funA") def funB(desB): print("It's funB") @funA def funC(): print("It's ...

欢迎关注,共同进步! 1万+

python符号 @ 的讲解——基础到进阶

python符号@的讲解,我个人学习的过程,从基础用法到更进一步的理解编译过程

weixin_63483020的博客 2192

Excel公式前的“@”符号:是Bug还是黑科技?

Excel 自动添加@符号的三种含义解析:1)作为隐式交集运算符,防止动态数组溢出,保持旧版本兼容性;2)在超级表中作为结构化引用符,指向当前行数据;3)在自定义格式中作为文本占位符。文章详细解释了@符号在不同场景下的作用机制,并提供了#SPILL!错误的解决方案,帮助用户理解Excel这一智能兼容特性。

葡萄城技术团队博客 2207

学会 Python 中的 @,让代码优雅度爆表!0基础小白也能轻松掌握!——Python @ 符号详解

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。方法,返回两个数相加的结果,完全不依赖类或实例。

2301_78150559的博客 2377

Python中的@符号用法,理解python装饰器

python编程中,经常发现函数上有@字符,代表什么意思?

AI量化交易实验室 2506

特殊符号(包括数字和字母)

特殊符号(包括数字和字母)等等

weixin_46665865的博客 23万+

C#中@的用法总结(转)

本文实例汇总了C#中@的用法,对C#程序设计来说有不错的借鉴价值。具体如下: 一 字符串中的用法 1.学过C#的人都知道C# 中字符串常量可以以@ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,即我们不需要对转义字符加上 \ (反斜扛),就可以轻松coding。如, string filePath = @"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt" 2.如要在一个用 @ 引起来的字符串中包括一个双引号,就需要

SmileMoon's Home 3138

世界环保创业基金会简介

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33933118的博客 3万+

Python 中的 `@` 符号有什么作用?有注解的意思吗?

例如,Python 的类型注解使用的是。装饰器是 Python 中的一种特殊语法,用于修改函数或类的行为。符号后面跟一个装饰器函数,用于增强或修改被装饰的函数或类的功能。如果你主要关注某一部分的应用,欢迎进一步讨论!在 Python 中有多个用途,主要包括。如果你的问题是关于 Python 中如何做。但 Python 没有类似 Java 的。Python 3.5+ 引入了。在某些编程语言(如 Java),Python 3.7+ 引入。所以,在 Python 里,在 Python 中,

AI Agent 首席体验官 1857
上一篇: python中'@'符号用作函数修饰符
下一篇: python中迭代器和iter()函数
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值