python使用教程操作(详解python中@的用法)
python使用教程操作
详解python中@的用法python中@的用法
@是一个装饰器,针对函数,起调用传参的作用。
有修饰和被修饰的区别,‘@function'作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义)。
代码1
|
def funA(desA): print ( "It's funA" ) def funB(desB): print ( "It's funB" ) @funA def funC(): print ( "It's funC" ) |
结果1
It's funA
分析1
@funA 修饰函数定义def funC(),将funC()赋值给funA()的形参。
执行的时候由上而下,先定义funA、funB,然后运行funA(funC())。
此时desA=funC(),然后funA()输出‘It's funA'。
代码2
|
def funA(desA): print ( "It's funA" ) def funB(desB): print ( "It's funB" ) @funB @funA def funC(): print ( "It's funC" ) |
结果2
It's funA
It's funB
分析2
@funB 修饰装饰器@funA,@funA 修饰函数定义def funC(),将funC()赋值给funA()的形参,再将funA(funC())赋值给funB()。
执行的时候由上而下,先定义funA、funB,然后运行funB(funA(funC()))。
此时desA=funC(),然后funA()输出‘It's funA';desB=funA(funC()),然后funB()输出‘It's funB'。
代码3
|
def funA(desA): print ( "It's funA" ) print ( '---' ) print (desA) desA() print ( '---' ) def funB(desB): print ( "It's funB" ) @funB @funA def funC(): print ( "It's funC" ) |
结果3
It's funA
< function funC at 0x000001A5FF763C80 >
It's funC
It's funB
分析3
同上,为了更直观地看参数传递,打印desA,其传的是funC()的地址,即desA现在为函数desA()。
执行desA()即执行funC(),desA=desA()=funC()。
代码4
|
def funA(desA): print ( "It's funA" ) def funB(desB): print ( "It's funB" ) print ( '---' ) print (desB) @funB @funA def funC(): print ( "It's funC" ) |
结果4
It's funA
It's funB
None
分析4
上面将funC()作为参数传给funA,那么funA(funC())怎么传给funB()呢?打印desB,发现并没有参数传递。
是否可以理解为当‘装饰器' 修饰 ‘装饰器'时,仅是调用函数。
以上所述是小编给大家介绍的python中@的用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/occamo/article/details/80842311
- python入门知识点总结(深入解析Python小白学习操作列表)
- pythonmatplotlib怎么画区域(python matplotlib实现双Y轴的实例)
- python列出文件夹下所有文件(python批量修改文件夹及其子文件夹下的文件内容)
- pythonselenium判断网页加载完成(python 实现selenium断言和验证的方法)
- 卷积神经网络python实现(Python通过TensorFlow卷积神经网络实现猫狗识别)
- pythoncsv格式转换(Python把对应格式的csv文件转换成字典类型存储脚本的方法)
- python中startswith使用教程(Python os.access用法实例)
- python3 for循环怎么用(Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解)
- python图片模板匹配(python实现简单图片物体标注工具)
- python爬取豆瓣电影评论(python使用requests模块实现爬取电影天堂最新电影信息)
- pythonhtml文件转换成pdf库(Python3转换html到pdf的不同解决方案)
- python接口自动化接口依赖(python接口自动化十六--参数关联接口后传详解)
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- python3.7手册中文版(Python3.4解释器用法简单示例)
- python排序的三种方法(Python实现插入排序和选择排序的方法)
- python将网站图片本地存储(详解Python下载图片并保存本地的两种方式)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
- 蓝色代表什么(蓝色代表什么性格的人)
- 红色代表什么(红色代表什么情感和含义)
- 南宋志南和尚绝句 杨柳风似庙中来(南宋志南和尚绝句)
热门推荐
- linuxdhcp服务器分配(Linux实现DHCP服务器的搭建)
- laravel 数据表格(Laravel自定义 封装便捷返回Json数据格式的引用方法)
- linux虚拟内存实现需要哪六种机制(解析Linux高性能网络IO和Reactor模型)
- SCOPE_IDENTITY的用法
- mysql全套优化(Mysql优化神器推荐)
- python使用教程操作(详解python中@的用法)
- dedecms无缩略图怎么设置(dedecmsV5.7版 tag标签长度的修改方法详解)
- pythonflask编写接口(Python Flask框架模板操作实例分析)
- php创建文件(php创建多级目录与级联删除文件的方法示例)
- php数组实例说明(PHP检测一个数组有没有定义的方法步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9