博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
今日内容的回顾12
阅读量:4603 次
发布时间:2019-06-09

本文共 1806 字,大约阅读时间需要 6 分钟。

1,函数默认值得细节

如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值

a = 100

def fn(num=a):
print(num) # 100
a = 200
fn()

三元表达式:就是if   else的语法糖

三目运算符:用于简化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], ('B', 2)]

res = {k.lower(): v for k, v in ls}
print(res)

函数对象

在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

转载于:https://www.cnblogs.com/zahngyu/p/10774829.html

你可能感兴趣的文章
java中的Volatile关键字
查看>>
前端自定义图标
查看>>
实验二
查看>>
独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
jsp改造之sitemesh注意事项
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
文件权限
查看>>