python -- 函数进阶
- def func(* jiemu): # 在形参这里把接受过来的实参进行聚合,集合成一个元组
- print(jiemu)
- func('奇葩说','知识就是力量','老梁说故事','吐槽大会')
- # 结果:('奇葩说', '知识就是力量', '老梁说故事', '吐槽大会')
- def func(**tianqi): # 聚合, ** 聚合成字典
- print(tianqi)
- # func(1,2,3,4,5) # 位置参数或报错, func() takes 0 positional arguments but 5 were given
- func(today='晴天', tomorrow='大晴天', yesterday='阴天')
- # 结果:{'today': '晴天', 'tomorrow': '大晴天', 'yesterday': '阴天'}
- # 无敌参数
- def func(*args,**kwargs): # argument 参数 key argument 关键字参数
- print(args,kwargs)
- func('a','b',1,2,3,f='小熊',g = '小虎')
- # 结果:('a', 'b', 1, 2, 3) {'f': '小熊', 'g': '小虎'}
- def eat(*food):
- print(food)
- eat(*"你今天吃了什么")
- # 结果:('你', '今', '天', '吃', '了', '什', '么')
** 在形参表示动态传参 -- 关键字参数; 打散,打散成关键字
- def tianqi(**day): # 聚合,聚合字典
- print(day)
- dic = {'today':'晴天','tomorrow':'要下雪',} # 打散,打散关键字
- tianqi(**dic,abs= '还是要下雪')
- # 结果:{'today': '晴天', 'tomorrow': '要下雪', 'abs': '还是要下雪'}
- a = 10
- def func():
- a = 20
- c = 30
- def abc():
- print('who are you?')
- print(a,c) # 这里使用的是局部作用域
- print(globals()) # 打印全局作用域中的内容
- print(locals()) # 打印局部作用域中的内容
- func()
三、函数的嵌套
- def func1():
- print(1)
- def func2():
- print(2)
- def func3():
- print(3)
- func3()
- print(4)
- func2()
- print(5)
- func1()
四、关键字global和nonlocal
- a = 10
- def func2():
- a = 20
- print('内部的:',a)
- func2()
- print('外部的:',a)
- # 内部的: 20
- # 外部的: 10
global表示,不再使用局部作用域中的内容了,而改用全局作用域中的变量
- # 全局变量一般是不能随意改变得
- a = 10
- def func2():
- # 慎用
- global a # 表示从全局把一个变量引到局部,后面使用的a都是全局变量
- a += 20 # 现在a 是全局变量,在试图改全局变量
- print('内部的:',a)
- func2()
- print('外部的:',a)
- # 内部的: 30
- # 外部的: 30
在局部引入一个全局变量,如果这个变量在全局不存在,global会自动创建一个全局变量
- def func():
- global a # 创建一个全局变量
- a = 10
- print(a)
- func()
- print(a)
nonlocal 表示在局部作用域中,调用父级命名空间(离它最近的一个)中的变量
python -- 函数进阶的更多相关文章
- python函数进阶(函数参数、返回值、递归函数)
函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...
- 第六篇:Python函数进阶篇
在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点: 一.Python的迭代器 ...
- python 函数进阶与闭包
函数的命名空间和作用域 引言 现在有个问题,函数里面的变量,在函数外面能直接引用么? def func1(): m = 1 print(m) print(m) #这行报的错 报错了: NameErro ...
- 万恶之源 - Python函数进阶
函数参数-动态参数 之前我们说过传参,如果我们在传参数的时候不很清楚有哪些的时候,或者说给一个函数传了很多参数,我们就要写很多,很麻烦怎么办呢,我们可以考虑使用动态参数 形参的第三种:动态参数 动态参 ...
- python函数进阶
知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...
- Python 函数进阶(filter/map/json/zip)
一.函数即变量 def say(name): print(name)ybq = say #可以被赋值给其他变量ybq('Amily') #调用函数 函数名:say 函数体:第1-2行 返回值:retu ...
- 13 Python 函数进阶
代码在运行伊始,创建的存储“变量名与值的关系”的空间叫做全局命名空间,在函数的运行中开辟的临时的空间叫做局部命名空间 命名空间和作用域 命名空间的本质:存放名字与值的绑定关系 >>> ...
- Python—函数进阶篇
lambda表达式(匿名函数表达式) 作用:创建一个匿名函数对象.同def类似,但不提供函数名. 语法:lambda [形参1,形参2,...] : 表达式 语法说明 lambda 只是一个表达式,它 ...
- Python函数进阶:闭包、装饰器、生成器、协程
返回目录 本篇索引 (1)闭包 (2)装饰器 (3)生成器 (4)协程 (1)闭包 闭包(closure)是很多现代编程语言都有的特点,像C++.Java.JavaScript等都实现或部分实现了闭包 ...
随机推荐
- Spring:容器基本用法
bean是Spring 最核心的东西,打个比方,假设Spring是一个水桶,那么bean就是水桶里的水,水桶离开水后,就没啥作用了.我们先来看一下bean的定义: public class Perso ...
- Java SE中的Synchronized
1 引言 在多线程并发的编程中Synchronized一直是元老级的角色,很多人会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化以后,有些情况下它并不那么重了. ...
- nodejs笔记之连接mysql数据库
1.安装mysql模块: npm install mysql 2.引入mysql模块 创建一个server.js文件 const http = require("http"); c ...
- vue 3.0的搭建
1. 删除以前的vue 2.x版本,并下载3.x版本 npm uninstall -g vue-cli / yarn global remove vue-cli npm install -g @vue ...
- asp.net(c#)网页跳转 方法小结
返回 打印 asp.net(c#)网页跳转七种方法小结_实用技巧_脚本之家 在asp.net下,经常需要页面的跳转,下面是具体的几种方法.跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于. ...
- Js重拾
如果重新声明 JavaScript 变量,该变量的值不会丢失: 在以下两条语句执行后,变量 carname 的值依然是 "Volvo": var carname="Vol ...
- mysql和oracle分页查询
MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...
- 996.ICU与死亡因素
昨天,我为996.ICU这场国际运动贡献了一颗星. 关于这件事,第一想到的就是我们工作的初心是为了更好的生活,工作扼杀生活的不良风气应该坚决抵制. 查了一下,近些年人类正常死亡原因中排名前三的原因为: ...
- Redis查漏补缺:最易错过的技术要点大扫盲
考虑到绝大部分写业务的程序员在实际开发中使用Redis时,只会Setvalue和Getvalue两个操作,对Redis整体缺乏一个认知.又恰逢笔者有同事下周要去培训Redis,所以笔者斗胆以Redis ...
- 【MySQL】InnoDB 内存管理机制 --- Buffer Pool
InnoDB Buffer Pool 是一块连续的内存,用来存储访问过的数据页面 innodb_buffer_pool_size 参数用来定义 innodb 的 buffer pool 的大小 是 M ...