day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义
复习,
昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较
函数的参数,‘
实参与形参
形参:在函数定义时()中出现的参数
实参,在函数调用时()中出现的参数
实参的分类
位置实参:给位置形参传值,必须 按位置
关键字实参:给位置与关键字形参,不需要按照顺序
形参的分类,
··无值位置形参
··有值位置形参
··可变长位置形参
··有无值关键字形参
··可变长关键字形参
def fn(a,b=10,*args,x,y=10,z,**kwargs):pass
4:打散机制
def func(*args,**kwargs):
pass
func(*[],**{}) #*会把单列容器打散,**会打散双列容器
函数的嵌套调用’
在被调用的函数中调用其他函数,在被调用的函数中要去使用其他函数的功能
今日内容:
#函数默认值的细节,‘
#数据类型的补充: 三元表达式 ,列表推导式,字典推导式
函数对象
名称空间与作用域,
函数的嵌套定义:在函数内部定义函数
函数默认值的细节
如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值
a=100
def func(num=a):
print(num)#100
a=200
func()
三元表达式
又称三目运算符
用于简化if...else: 的语法结构
只能解决 if ...else:结构,其他if分支结构都不行
一个分支提供一个结果,如果一个分支提供了多个结果将多个结果通过元祖返回
a=int(input('请输入a:'))
b=int(input('请输入b:'))
res=a if a>b else b
print(res)
列表与字典推导式
#快速生成列表或字典的语法糖,且能在生成过程中 添加简单的逻辑
#能被列表推导式推导的数据源必须在循环取值时可以得到一个值
ls =[v for v in range(1,6)]
print(ls) #[1, 2, 3, 4, 5] ls =['偶数' if v%2==0 else '奇数' for v in range(1,6)]
print(ls)#['奇数', '偶数', '奇数', '偶数', '奇数']
#能被字典推导式推导的数据源必须在循环取值时可以被解压赋值为两个值
ls=[['a',1],['S',5]]
res={k.lower():v for k,v in ls}
print(res)#{'a': 1, 's': 5}
函数对象
#在python中,所有的变量存放的值只要是地址,我们就称之为对象
··所有的变量都是用来存放地址的,所以都是对象
··存放整型就是整型对象,存放函数的地址就是函数对象,存放文件的地址就是文件对象
函数对象:就是存放函数地址的变量就是函数对象
def fn():pass
my_fn=fn
#my_fn | fn 都存着函数地址,所以都是函数对象,函数对象的使用就是 函数对象() 来调用函数
#函数对象的应用场景
#函数对象() 就是调用函数
#函数对象可以直接作为变量赋值给其他变量
#函数对象可以最为函数的返回值
函数对象可以作为容器类型的成员
# 1.函数对象()就是调用函数
def fn1():
pass
fn1()
# 2.函数对象可以直接作为变量赋值给其他变量
def fn2():
pass
my_fn = fn2
print('>>>', my_fn, fn2)
my_fn()
# 3.函数对象可以作为函数的参数
def fn3(func): # func = my_fn = fn2
func()
fn3(my_fn)
# 4.函数对象可以作为函数的返回值
def fn4():
return my_fn
my_fn2 = fn4()
# 5.函数对象可以作为容器类型的成员
ls = [my_fn, my_fn2]
名称空间
队列储存方式,先进先出
堆栈存储方式,先进后出
名称空间就是名字与地址的对应关系,可以被python 解释器遍历查找,采用堆栈存储方式
三种名称空间:
Built-in:内置名称空间:系统级 一个 随着解释器的执行而产生,解释器停止而销毁
Global:全局名称空间:文件级 有多个,随所属文件加载而产生,文件运行完毕而销毁
Local:局部名称空间,函数级,多个,随所属函数执行而产生,函数执行完毕而摧毁
#文件中的if while for with 等 这些能产生缩进的关键字并不能产生名称空间
#加载顺序 Built-in >Global>Local
函数的嵌套定义
#概念,在一个含税不定义另一个函数
def outer():
print('outer run')
a=10
#函数对象(变量) 与普通对象一样 ,在函数内部定义,随函数调用而产生
#调用结束而销毁,所以只能在函数内部使用
def inner():
print('inner run')
inner()
outer()
作用域
#作用域:变量起作用的范围
四种作用域
#Built-in 内置作用域,作用所有文件的所有地方
#global:全局作用域,作用当前文件的所有地方
#Enclosing:嵌套作用域。作用当前函数以及内部被嵌套的函数
#Local,局部作用域,作用当前函数内部
不同作用域之间名字不冲突,以达到名字的重用
每个作用域优先使用自己作用域中的名字,没有在找更大名称空间的名字,直到内置还没有就报错
查找顺序,Local>Enclosing>Global>Built-in
day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义的更多相关文章
- 周末学习笔记——day01(函数,函数对象,嵌套调用,名称空间,作用域,闭包,装饰器)
一,复习 字符编码 文件头:py2—ASCII,py3—UTF-8 三种字符串:u' ' b ' ' r ' ' u' ' .endcode(' utf-8 ') b' '.deconde(' utf ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参: -- 形参:在函数定义时()中出现的参数 ...
- python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象
今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): y=func() print(y) def foo( ...
- Python--day12(三元表达式、函数对象、名称空间与作用域、函数嵌套定义)
今日主要内容 1. 函数默认值细节(*) 2. 数据类型补充:三元表达式.列表推导式.字典推导式 (***) 3. 函数对象:函数名的各种应用场景 (*****) 4. 名称空间与作用域:解释 ...
- day12(表达式,推导式,名称空间与作用域,函数的嵌套定义)
一,复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascll进行比较 # print('a' > 'A') #True # print('ac' > 'ab' ...
- python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...
- day12函数,三元表达式 ,列表推导式 ,字典推导式,函数对象,名称空间与作用域,函数的嵌套定义
复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函 ...
- day12 函数对象,名称空间与作用域
""" 今日内容: 1.函数参数传值细节 2.三元表达式 3.列表及字典推导式 4.函数对象 5.名称空间与作用域 6.函数的嵌套定义初识 ""&qu ...
随机推荐
- checkpoint NGFW VM安装
step1:在VMworkstation中创建虚拟机向导,选择Linux 2.6内核 64位如下图: 虚拟机的配置建议如下: RAM:至少8GB Disk:120G CPU:四核 step2:使用IO ...
- Python开发【第九篇】:协程、异步IO
协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是协程,协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切换回 ...
- nginx安装与挂载
Linux下添加新硬盘,分区及挂载 http://blog.chinaunix.net/uid-25829053-id-3067619.html vim /etc/fstab /dev vdb1 / ...
- redis各类错误可能的解决方案
.报Timeout performing EVAL 这个可能是连到读库从库了,直接改成写库就没问题了. 2. 各种ConnectTimeout 一般是偶尔或经常就超时,这种情况,找了各种回答,最后在s ...
- 解决InetAddress.isReachable(timeout)在windows xp始终返回false的bug
笔者最近在做产品,其中一个环节用到ping测试主机是否在线. 开发环境:Windows 7 64bit+JDK1.8 x64 以下是检测主机是否在线,开发环境中测试通过 public static b ...
- mysql 跨服务器查询
转载地址:https://blog.csdn.net/pashine/article/details/78875540
- Object.defineProperty(obj,prop,descriptor)使用
初步实现了数据自动映射到html中,动态修改对象数据也很自动更新到html.提供addProps方法-添加新增属性并初始化自动监听代码如下: 1.abserve.js:包含数据监听实现.类似jquer ...
- DNN原理探究系列之目录与序章篇
序言: 神经网络结构,作为最成功的机器学习模型之一,其工作原理一直被埋藏得比较深,其解释性以至于被称为黑盒. 自己对于DNN的理解也只能算刚踏入了门槛,对于人脑的原理与DNN原理之间的互通性,一直是非 ...
- matplotlib 中文显示问题
matplotlib 默认显示不了中文,如果想显示中文,通过下面代码设置: import matplotlib #指定默认字体 matplotlib.rcParams['font.sans-serif ...
- Ubuntu 16.04 安装PCL库以及测试
参考链接:https://blog.csdn.net/dantengc/article/details/78446600 参考博客,官网一直安装不成功,后来参照一篇博客终于安装成功了,记录如下. 1. ...