前言

本文主要给大家介绍的是关于python将函数赋值给变量时需要注意的一些问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
见过两种函数赋值给变量的形式,一种是
a=f
另一种是
a=f()
这两种形式是有区别的,分别总结一下。
1.a=f型属于将变量指向函数。
用代码验证一下:
>>> f = abs >>> f(-10) 10
说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。这是廖雪峰老师python教程上的例子,现在调用f()和调用abs()是一样的了。
再举一个工厂函数的例子:
def maker(N): def action(X): return X**N return action
这个嵌套函数的外层返回值为内层函数的函数名,注意没有括号,这里有无括号是有很大区别的。此时调用外部函数:
f=maker(2)
那么如上所述,f便指向了action函数,且限制条件为N=2,可以理解为f为N等于2时的action函数。我们来调用它:
>>> f(3) 9
证明f和action函数是一样的。
2.a=f()型属于将f()的返回值赋值给a的过程
这里的a仅仅接收f()的返回值,如果f()没有返回值,那么a即被赋值为None。这里值得注意的一点是,在a=f()的执行过程中,f()会运行一次,这也是我刚刚搞明白的,如:
>>> def add(x,y): z=x+y print(z) >>>a=add(3,4) 7
这里虽然只有一个赋值语句执行了,但是却输出了结果7,说明赋值过程函数add执行了,然而a的值为None,且只能通过print语句才可以显示。不只是赋值过程函数会执行,写在return语句中也会如此。
>>>def log(func):
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
>>>@log
>>>def now():
print('2015-3-25')
这是廖雪峰老师python教程装饰器一节的例程,刚开始我以为return func(*args,**kw)这个语句是返回了now()函数(即func函数)的返回值,后来发现now函数没有返回值,即为None,所以其实是这个语句在赋值过程,
func(*args,**kw)执行了,即函数now的print语句执行了。
下面的习题中,一个变形是要求在函数调用的前后打印出'begin call'和'end call',下面一位网友的程序是这么写的:
def wrapper(*args,**kw): print(t+'begin call') result=func(*args,**kw) print(t+'end call') return result
开始不太理解为什么使用result=func(*args,**kw)这句,后来理解后才明白其实赋值本身并没有意义,只是这句话同时使得func函数运行了,所以写成
def wrapper(*args,**kw): print(t+'begin call') func(*args,**kw) print(t+'end call')
结果也是一样的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# python函数赋值给变量
# python
# 变量赋值
# python给变量赋值
# python 解决动态的定义变量名
# 并给其赋值的方法(大数据处理)
# Python3单行定义多个变量或赋值方法
# 图解Python变量与赋值
# python的变量与赋值详细分析
# Python编程之变量赋值操作实例分析
# 深入理解Python中变量赋值的问题
# 深入解析Python中的变量和赋值运算符
# python实现同时给多个变量赋值的方法
# Python动态声明变量赋值代码实例
# 返回值
# 这是
# 值为
# 是有
# 是一样的
# 的是
# 也会
# 不太
# 说了
# 见过
# 两种
# 不多
# 这句话
# 要注意
# 给大家
# 才可以
# 只有一个
# 刚开始
# 这篇文章
# 谢谢大家
相关文章:
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何破解联通资金短缺导致的基站建设难题?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
微信小程序 五星评分(包括半颗星评分)实例代码
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
网页设计网站制作软件,microsoft office哪个可以创建网页?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何通过FTP空间快速搭建安全高效网站?
建站之星导航如何优化提升用户体验?
宁波自助建站系统如何快速打造专业企业网站?
建站之星展会模版如何一键下载生成?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何用低价快速搭建高质量网站?
制作电商网页,电商供应链怎么做?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何挑选最适合建站的高性能VPS主机?
,想在网上投简历,哪几个网站比较好?
建站之星客服服务时间及联系方式如何?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
宝塔Windows建站如何避免显示默认IIS页面?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
黑客入侵网站服务器的常见手法有哪些?
如何快速生成ASP一键建站模板并优化安全性?
,怎么用自己头像做动态表情包?
制作网页的网站有哪些,电脑上怎么做网页?
c# 在高并发场景下,委托和接口调用的性能对比
全景视频制作网站有哪些,全景图怎么做成网页?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
如何在橙子建站中快速调整背景颜色?
北京网站制作的公司有哪些,北京白云观官方网站?
如何通过智能用户系统一键生成高效建站方案?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
网站微信制作软件,如何制作微信链接?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
建站之星代理如何优化在线客服效率?
建站之星代理平台如何选择最佳方案?
建站之星2.7模板快速切换与批量管理功能操作指南
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
湖北网站制作公司有哪些,湖北清能集团官网?
文字头像制作网站推荐软件,醒图能自动配文字吗?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
建站之星后台管理系统如何操作?
如何通过IIS搭建网站并配置访问权限?
建站主机是否属于云主机类型?
详解jQuery中基本的动画方法
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
建站主机如何选?高性价比方案全解析
*请认真填写需求信息,我们会在24小时内与您取得联系。