全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python中将函数赋值给变量时需要注意的一些问题

前言

本文主要给大家介绍的是关于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小时内与您取得联系。