python基础--函数的命名空间and作用域
函数对象:函数是第一类对象,函数名指向的值是可以被当作参数进行传递的
1、函数名可以被传递
2、函数名可以被当作参数传递给其它函数
3、函数名可以被当作函数的返回值
4、函数名可以被当作容器类型的参数
函数的嵌套调用:在函数的内部调用其它的函数,可以将复杂的逻辑简单化
# 比较输出最大的数
def my_max(x,y):
if x > y:
return x
return y def my_max4(a,b,c,d):
res1 = my_max(a,b)
res2 = my_max(res1,c)
res3 = my_max(res2,d)
return res3
print(my_max4(,,,))
定义:写一个函数,用户可以通过传参的不同控制函数执行不同的功能
名称空间:字面意思是放名字的地方
解释:存放变量与变量值的内存地址的绑定关系的地方,如果要访问一个变量的话,必须先去名称空间中拿到对应的名字才能够访问变量的值。
分类:
内置名称空间:python解释器已经提前给你定义好了的名字(已经存放到内置名称空间中了)
全局名称空间:文件级别的代码
局部名称空间:函数体内创建的名字都属于局部名称空间
生命周期:
内置名称空间:只要python解释器一启动就立刻创建,当解释器关闭的时候内置空间自动销毁
全局名称空间:只要你右键运行py文件,就会自动创建py文件程序运行结束自动销毁
局部名称空间:函数被调用的时候就会自动创建,函数指向结束立即销毁(动态创建动态销毁)
名字的查找顺序:局部-->全局-->内置
函数在定义阶段查找名字的顺序就已经固定了,不会因为函数的调用位置变化而变化
作用域:全局作用域、局部作用域
global:局部修改全局 如果想要修改多个 用逗号隔开
nonlocal:局部修改局部 如果想要修改多个 用逗号隔开
python基础--函数的命名空间and作用域的更多相关文章
- Python:函数的命名空间、作用域与闭合函数
1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回 ...
- python基础—函数嵌套与闭包
python基础-函数嵌套与闭包 1.名称空间与作用域 1 名称空间分为: 1 内置名称空间 内置在解释器中的名称 2 全局名称空间 顶头写的名称 3 局部名称空间 2 找一个名称的查找顺序: ...
- Python基础-函数参数
Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函 ...
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- python基础—函数装饰器
python基础-函数装饰器 1.什么是装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的返回值是也是一个函数对象. 装饰器经常用于有切 ...
- 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...
- Python基础(函数部分)-day04
写在前面 上课第四天,打卡: 加勒比海盗今天上映:端午节公司发的粽子很有范! 一.函数的基本概念 - 函数是什么? 函数,就是一个'锤子',一个具有特定功能的'锤子',使用者可以在适当的时候使用这个 ...
- Python基础(函数部分)
写在前面 加勒比海盗今天上映! 一.函数的基本概念 - 函数是什么? 函数,就是一个'锤子',一个具有特定功能的'锤子',使用者可以在适当的时候使用这个'锤子',而不用再去从头做一个'锤子':即可以 ...
随机推荐
- Ubuntu安装Windows软件
https://www.cnblogs.com/chendeqiang/p/10177530.html Windows系列软件 安装Deepin封装好的框架 git clone https://git ...
- python Xls文档读写
1.模块安装 2.python 代码 import xlrd import xlwt import datetime def set_style(name,height,format,bold=Fal ...
- 洛谷 P3120 [USACO15FEB]牛跳房子(金)Cow Hopscotch (Gold)
P3120 [USACO15FEB]牛跳房子(金)Cow Hopscotch (Gold) 就像人类喜欢跳格子游戏一样,FJ的奶牛们发明了一种新的跳格子游戏.虽然这种接近一吨的笨拙的动物玩跳格子游戏几 ...
- python事件调度库sched
事件调度 sched模块内容很简单,只定义了一个类.它用来最为一个通用的事件调度模块. class sched.scheduler(timefunc, delayfunc)这个类定义了调度事件的通用接 ...
- @Component 和 @Bean 的区别
Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean.完成这两个动作有三种方式,一种是使用自动配置的方式.一种是使用JavaConfig的方式,一种就是使用XML配置的方 ...
- vue之vant组件下拉加载更多
vant地址:https://youzan.github.io/vant/#/zh-CN/intro 基础用法 List 组件通过loading和finished两个变量控制加载状态,当组件滚动到底部 ...
- We'll be fine.
可怜的人心中都有一种信念,那就是 明天会更好. Everything will be fine. 我拥见风来,嗅见花开,是避不掉的厉寒,是止不住的徘徊.
- JPA 中注解的作用
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA由EJB 3.0软件专家 ...
- Python学习day06-Python基础(4)流程控制之while和for循环
Python学习day06-流程控制之while和for循环 Python学习day06-流程控制之while和for循环while循环1. 语法2. while+break,while+contin ...
- vue-cli# 项目结构
引自:https://segmentfault.com/a/1190000007880723 http://blog.csdn.net/hongchh/article/details/55113751 ...