python函数使用易错举例

关于嵌套:

嵌套使用中,  retrun inner  ---> 返回的是函数的地址

 retrun inner() :    --->  运行inner()函数   ---> 运行inner()函数后的返回值a(假设)返回上级  -->       retrun inner()得到返回值a

如果函数没有指定返回值,那么默认的返回值就是 None

举例1:

name = "老师"def outer():name = "小屁孩"def inner():print(name)return inner()ret = outer()
print(ret)#

运行结果:

 

举例2(易错,与举例1对比):

这里要注意的是,inner是属于  outer内部的函数,因此,“ 即使单独运行 ”  inner内部的函数,其内部的参数没有定义的话,也会先去从它的上级函数找,这里inner的上级函数就是  outer

 

name = "老师"
def outer():name = "小屁孩"def inner():print(name)return innerret = outer()
ret()                           # 相当于运在outer当中运行了inner
print("ret = outer(): ",ret)
result = ret()
print("result = ret():  ",result)       # 相当于运在outer当中运行了inner,并且要了inner的返回值

 

 

参考文献: 

python基础-基础知识考试_day5 (包括:函数_递归等知识) - 努力哥 - 博客园
https://www.cnblogs.com/nulige/p/6128674.html,第30题

 

 


举例3:

这里需要注意的是,形参func存放的是外部全局定义的函数show的地址。

outer(show)()运行过程: a = outer(show)  -->   a()

name = "老师"def outer(func):print("outer!!")def inner():name = "李杰"func()return innerdef show():print("show!!")print(name)outer(show)()

运行结果:

 

举例4(与举例3区别):

 


name = "老师"def outer(func):print("name is given when ==>>func starts",name)def inner(name):print("name is given when ==>>inner starts",name)name = "李杰"func(name)return innerdef show(name):print("name is given when ==>>show starts",name)print(name)outer(show)(name)

转载于:https://www.cnblogs.com/jyfootprint/p/9409912.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像离群值_什么是离群值?

图像离群值你是! (You are!) Actually not. This is not a text about you.其实并不是。 这不是关于您的文字。 But, as Gladwell puts it in Outliers, if you find yourself being that type of outlier, you’re quite lucky. And rare.但是,正如Gla…

混合模型和EM---混合高斯

2019独角兽企业重金招聘Python工程师标准>>> 混合高斯 最大似然 用于高斯混合模型的EM 转载于:https://my.oschina.net/liyangke/blog/2986520

永恒python地速_立竿见影地把你的 Python 代码提速7倍

之前曾经测试计算斐波那契数列的几种方法,其中基于递归的方法是速度最慢的,例如计算第 40 项的值,需要 36 秒。如下图所示。要提高运算速度,根本办法当然是改进算法。不过算法的提高是一个长期积累加上灵机一动的过程。我们今天要…

顶尖大学实验室的科研方法_这是来自顶尖大学的5门免费自然语言处理课程

顶尖大学实验室的科研方法Data Science continues to be a hot topic, but more specifically, Natural Language Processing (NLP) is increasing in demand.数据科学仍然是一个热门话题,但更具体地说,自然语言处理(NLP)的需求正在增长。 Broadly spea…

Python学习---django知识补充之CBV

Django知识补充之CBV Django: url --> def函数 FBV[function based view] 用函数和URL进行匹配 url --> 类 CBV[function based view] 用类和URL进行匹配 POSTMAN插件 http://blog.csdn.net/zzy1078689276/article/details/77528249 基于CBV的登…

「CH2101」可达性统计 解题报告

CH2101 可达性统计 描述 给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。N,M≤30000。 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。 输出格式 共N行,表示每个点能够…

蓝图解锁怎么用_[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(一)

不说废话,先上个演示图最终成果(脚印,雪地可慢慢恢复,地形可控制)主要原理(白话文):假如你头上是块白色并且可以透视的平地,来了个非洲兄弟踩上面,你拿起单反…

数据预处理工具_数据预处理

数据预处理工具As the title states this is the last project from Udacity Nanodegree. The goal of this project is to analyze demographics data for customers of a mail-order sales company in Germany.如标题所示,这是Udacity Nanodegree的最后一个项目。…

这几日英文大汇

int > 整数. 主要⽤用来进⾏行行数学运算 str > 字符串串, 可以保存少量量数据并进⾏行行相应的操作 bool>判断真假, True, False list> 存储⼤大量量数据.⽤用[ ]表⽰示 tuple> 元组, 不可以发⽣生改变 ⽤用( )表⽰示 dict>字典,保存键值对,⼀一样可以…

在网上收集了一部分关于使用Google API进行手机定位的资料和大家分享

在网上收集了一部分关于使用Google API进行手机定位的资料和大家分享:关于基站定位方面的介绍:http://tech.c114.net/164/a140837.html开发方面的帮助:http://www.dotblogs.com.tw/kylin/archive/2009/08/09/9964.aspxhttp://code.google.com…

background图片叠加_css怎么让两张图片叠加,不用background只用img叠加

展开全部css层叠图片代码://这个层为外面的父层,只需设置相对位置样式即可//这个为里e69da5e887aa3231313335323631343130323136353331333431363030面要叠加的层,只需设置绝对样式//这个为层里面的内容图片//这个为父层内容或者:扩…

“入乡随俗,服务为主” 发明者量化兼容麦语言啦!

5年时光 我们裹挟前行。发明者量化从筚路蓝缕到步履蹒跚,从以“区块链资产交易”为阵地,再到以“内外盘商品期货”为依托。再到今天全面兼容“麦语言”。每一步,我们始终都在为建立一个优秀的量化交易平台而努力。 什么是麦语言? …

自考数据结构和数据结构导论_我跳过大学自学数据科学

自考数据结构和数据结构导论A few months back, I decided I wanted to learn data science. In order to do this, I skipped an entire semester of my data science major.几个月前,我决定要学习数据科学。 为此, 我跳过了数据科学专业的整个学期。 …

爬取LeetCode题目——如何发送GraphQL Query获取数据

前言 GraphQL 是一种用于 API 的查询语言,是由 Facebook 开源的一种用于提供数据查询服务的抽象框架。在服务端 API 开发中,很多时候定义一个接口返回的数据相对固定,因此要获得更多信息或者只想得到某部分信息时,基于 RESTful AP…

python中的thread_Python中的thread

测试代码import threadingimport timedef do_thread_test():print start thread time:, time.strftime(%H:%M:%S)time.sleep(5)print stop thread time:, time.strftime(%H:%M:%S)threads []for i in range(2):thread1 threading.Thread(targetdo_thread_test)thread1.setDae…

--附加数据库失败

--附加数据库失败1.产生失败的原因比如有个数据库,名叫HIMS,它的数据文件HIMS_Data.mdf和日志文件HIMS_Log.ldf,都放在路径c:/Program Files/Microsoft SQL Server/MSSQL/data/下。但是这个数据库天天跑日志,会产生上G的日志,现在通过企业管理…

十三、原生爬虫实战

一、简单实例 1、需求:爬取熊猫直播某类主播人气排行 2、了解网站结构 分类——英雄联盟——"观看人数" 3、找到有用的信息 二、整理爬虫常规思路 1、使用工具chrome——F12——element——箭头——定位目标元素 目标元素:主播名字&#xff0c…

归一化 均值归一化_归一化折现累积收益

归一化 均值归一化Do you remember the awkward moment when someone you had a good conversation with forgets your name? In this day and age we have a new standard, an expectation. And when the expectation is not met the feeling is not far off being asked “w…

sqlserver垮库查询_Oracle和SQLServer中实现跨库查询

一、在SQLServer中连接另一个SQLServer库数据在SQL中,要想在本地库中查询另一个数据库中的数据表时,可以创建一个链接服务器:EXEC master.dbo.sp_addlinkedserver server N别名, srvproductN库名,providerNSQLOLEDB, datasrcN服务器地址EXEC…

Angular2+ typescript 项目里面用require

在typescript里面怎么使用require方法呢? const jQuery require(jquery); const fip require( fonticonpicker/fonticonpicker )( jQuery ); 如果什么都不做,直接在项目里面使用,会得到以下错误: Cannot find name require 以下…