python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
复习
1.字符串的比较:
-- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较
2. 函数的参数 :
1)实参与形参:
-- 形参:在函数定义时()中出现的参数
-- 实参:在函数调用时()中出现的参数
2)实参的分类
-- 位置实参:给位置形参,必须按位置
-- 关键字实参:给位置与关键字形参,不需要按顺序
3)形参的分类
-- 无值位置
-- 有值位置
-- 可变长位置
-- 有无值关键字
-- 可变长关键字
def fn(a, b=10, *args, x, y=20, z, **kwargs): pass
4)打散机制
def func(*args, **kwargs):pass
func('a', 'b', 'c', a=1, b=2)
func(*'abc', **{'a': 1, 'b': 2}) # args=('a', 'b', 'c') kwargs={'a': 1, 'b': 2}
3. 函数的嵌套调用
-- 在被调用的函数中调用其他函数:在被调用的函数中要去使用其他函数的功能
今日内容
1.函数默认值的细节:
如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值
a = 100
def fn(num=a):
print(num) # 100
a = 200
fn()
2.数据类型的补充:语法简单,经常去使用就ok ***
-- 2.1 三元表达式 | 2.2 .列表推导式 | 2.3字典推导式
2.1 三元表达式就是if...else...的语法糖,用于简化 if...else...的语法结构 res = a if a > b else b
-- 1) 只能解决if...else...结构,其他if分支结构都不管
-- 2)一个分支提供一个结果: 如果一个分支提供了多个结果, 将多个结果通过元组返回
2.2 列表推导式、2.3字典推导式
快速生成列表或字典的语法糖,且能在生成过程中添加简单的逻辑
列表推导式:能被列表推导式推导的数据源必须在循环取值时可以得到一个值
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}
3.函数对象:函数名的各种应用场景 *****
在python中,所有变量存放的值只要是地址,我们就称之为对象
-- 所有的变量都是用来存放地址的,所以都是对象
-- 存放整型的地址就是整型对象 | 存放函数的地址就是函数对象 | 存放文件的地址就是文件对象
函数对象:存放函数地址的变量就是函数对象
函数对象的应用场景
3.1.函数对象()就是调用函数
3.2.函数对象可以直接作为变量赋值给其他变量
3.3.函数对象可以作为函数的参数
3.4.函数对象可以作为函数的返回值
3.5.函数对象可以作为容器类型的成员
3.1.函数对象()就是调用函数
def fn1():
pass
fn1()
3.2.函数对象可以直接作为变量赋值给其他变量
def fn2():
pass
my_fn = fn2
print('>>>', my_fn, fn2)
my_fn()
3. 3.函数对象可以作为函数的参数
def fn3(func): # func = my_fn = fn2
func()
fn3(my_fn)
3.4.函数对象可以作为函数的返回值
def fn4():
return my_fn
my_fn2 = fn4()
3.5.函数对象可以作为容器类型的成员
ls = [my_fn, my_fn2]
4.名称空间与作用域:解释变量名重复与冲突问题 *****
5.函数的嵌套定义:在函数内部定义函数 *****
名称空间
python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域的更多相关文章
- python函数:函数参数、对象、嵌套、闭包与名称空间、作用域
今天的内容整理共有5部分 一.命名关键字参数 二.函数对象 三.函数的嵌套 四.名称空间与作用域 五.闭包函数 一.命名关键字参数 # 命名关键字参数: 在定义函数时,*与**之间参数称之为命名关键字 ...
- python学习 day12 (3月18日)----(装饰器内置函数)
读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...
- 老男孩python学习自修第十天【三元表达式与lambda表达式】
例如: 1.使用三元表达式给变量赋值 result = '空' if x == None else x 2.使用lambda定义函数 add = lambda x, y: x+y
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- python函数参数默认值及重要警告
最有用的形式是对一个或多个参数指定一个默认值.这样创建的函数,可以用比定义时允许的更少的参数调用,比如: def ask_ok(prompt, retries=4, reminder='Please ...
- Python函数参数默认值的陷阱和原理深究(转)
add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...
- ES6学习 --函数参数默认值与解构赋值默认值
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...
- python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...
随机推荐
- sum(case when ct.tradeTotal >= 0 then 1 else 0 end)的意思
String hql = "select new com.ks.admin.report.dto.ReportMonthWithDrawalDto(" + "count( ...
- 2018总结-->2019新目标
2018完成的事情: ①考到了驾照: ②刷了很多题,春季找到了实习,赚到了去日本旅游的经费和2019毕业租房的预算,最后签了offer: ③去了西安.天津.山西,看到了不一样的人和事: ④发了小论文, ...
- Linux下mysql的root密码修改方法(ERROR 1054)
#1.停止mysql数据库 /etc/init.d/mysqld stop #2.执行如下命令 mysqld_safe --user=mysql --skip-grant-tables --skip- ...
- 双网卡单IP实现网卡冗余与负载均衡
WINDOWS下: 所谓双网卡,就是通过软件将双网卡绑定为一个IP地址,这个技术对于许多朋友来说并不陌生,许多高档服务器网卡(例如intel8255x系列.3COM服务器网卡等)都具有多网卡绑定功能, ...
- Windows中的备份和还原
1:增量备份 (查看文件属性,只备打了勾的,备完后把勾取消掉,修改后勾都会打上) 2:差异备份(备份有勾的 ,备份完后不会取消勾) 周一:备一 周二:备二 周三:备三 周四:备三,四
- (转)SQLServer_十步优化SQL Server中的数据访问五
第九步:合理组织数据库文件组和文件 创建SQL Server数据库时,数据库服务器会自动在文件系统上创建一系列的文件,之后创建的每一个数据库对象实际上都是存储在这些文件中的.SQL Server有下面 ...
- Sublime Text 3安装Package Control
Package Control官网:https://packagecontrol.io/installation#st3 ctrl + ` 或者 View > Show Console呼出控制台 ...
- sqlserver查找使用了某个字段的所有存储过程
当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我们不知道哪些存储过程使用了该字段,那我们该怎么办?我们可以从之前的文档一个一个 ...
- hive 一次更新多个分区的数据
类似订单数据之类的表,因为有状态要更新,比如订单状态,物流状态之类的, 这样就需要同步很久之前的数据,目前我的订单表是更新前面100天的数据. hive中操作是先删除前面100个分区的数据,然后重新动 ...
- Flack--SQLAlchemy
SQLAlchemy 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使 ...