day10——动态参数、函数注释、名称空间、函数的嵌套、global及nonlocal
day10
三元运算符:
变量 = 条件成立的结果 条件判断 条件不成立的结果
补充:
# lst = [12,23,3,4,5,6]
# def func(*args):
# print(*args)
# func(lst[0],lst[1]) # 笨的办法
# func(*lst)
# dic = {"key":1,"key1":34}
# def func(**kwargs):
# print(kwargs)
# func(**dic)
动态参数
*args :能接收(接受任意多个)的位置参数,元组,*****在函数定义的时候叫聚合
输出的时候*args就是打散,把元组里面的东西一个个打印出来
位置参数 > 动态位置参数 > 默认参数
**kwargs :接收的是关键字参数,字典
输出的时候*kwargs,打印出键
参数的优先级:位置参数 > 动态位置参数 > 默认参数(关键字参数) > 动态关键字参数
1、万能传参:动态位置参数 , 动态关键字参数(最常用************)
2、位置参数,动态位置参数
3、动态位置参数,关键字参数,动态关键字参数
def func(a,b=1):
print(a,b)
func(1)
--------------------------
def func(a,b,*args): # *args是万能(接受任意多个)的位置参数,*在函数定义的时候叫聚合
print(a,b,args)
func(1,2,3,4,5,6,7,8,9)
---------------------------
def func(a,b,*args):
print(a,b,*args) # 打散
func(1,2,3,4,5,6,7,8,9)
# 位置参数 > 动态位置参数 > 默认参数
-------------------------
def func(*args , a=1, b=2):
print(a,b,args) # 元组(接收的位置参数)
func(12,15,21,11,17)
---------------------------
def func(a,b,**kwargs):
print(a,b,kwargs) # 字典(接收的关键字的参数)
func(1,2,c=1,d=2)
----------------------------
def func(a,b,*args,c=1,d=2):
print(a,b,*args,c,d)
func(1,2,3,4)
--------------------------
def func(a,b,*args,c=1,d=2,**kwargs):
print(a,b,*args,c,d,kwargs) # *kwargs——获取到字典的键
func(1,2,3,4,c=8,d=10,e='alex',f='wusir')
-----------------------------
def func(*args,**kwargs): # 万能传参
print(args,kwargs)
func(1,2,3,4,5,6,7,a=1,b=2,c=3)
函数释
def func(a,b):
"""
逻辑判断...
:param a: str
:param b: int
:return: bool
"""
print(a,b)
-----------------------
def func1(user,password):
"""
密码加密
:param user: 用户名 str
:param password: 密码 str
:return: 加密的密码 MD5
"""
print(user,password)
------------------
print(func.__doc__)
print(func1.__doc__)
print(funcc.__name__)
名称空间
- 内置空间:print,input,len
- 全局空间:当前py文件中定义的内容需要开辟空间存放在全局空间
- 局部空间:函数中开辟的空间就是局部空间
- 加载顺序:
内置空间 > 全局空间 > 局部空间
- 取值顺序:
局部空间 > 全局空间 > 内置空间(找不到就报错)
- 作用域:
全局作用域:内置空间+全局空间
局部作用域:局部空间
print(11)
a = 10
def func():
b = 20
print(b)
函数的嵌套
不管在什么位置,只要是函数名+(),就是在调用此函数
函数调用执行后,函数体中开辟的空间就自动销毁了
函数中套函数
def func():
print(1)
def f1():
print(2)
return f1()
func()
函数嵌套调用
def func():
a = 1
def foo():
b = 2
print(b)
print(a)
def f1():
print(b)
return f1()
return foo()
print(func())
函数互相引用(函数嵌套参数的传递和函数嵌套返回值的传递)
def func():
a = 1
foo()
print(a)
def foo():
b = 2
print(b)
func()
----------
def a():
a1 = 1
c()
print(c)
def b():
b1 = 2
print(b1)
def c():
c1 = 3
print:(a)
def run():
a()
run()
----------------
def func():
a = 1
def b():
print(a)
def foo():
b = 1
def z():
print(func)
print(b)
ret = z()
func()
return ret
def run():
foo()
print(run())
--------------------
def func(a):
foo(a)
def foo(e):
b(e)
def b(c):
print(c)
return 10
print(func(5))
global及nonlocal
global:把全局空间的变量强制放在局部空间,使局部变量可以修改全局空间里的变量
nonlocal :在外层的函数中,修改局部空间的变量值,完全不涉及全局空间只修改离他最近的一层没有,继续向上找,直到找到最外层函数为止
def func():
global a
a += 1
print(a)
func()
print(a)
-----------------------
a = 10
def f1():
a = 10
def f2():
a = 15
def f3():
global a
a += 1
print(a)
print(a)
f3()
print(a)
f2()
f1()
----------------------
a = 10
def func():
global a
a += 1
def f1():
a = 10
def foo():
nonlocal a # 11 11 11 11
a += 1
print(a)
foo()
print(a)
print(a)
f1()
func()
print(a)
day10——动态参数、函数注释、名称空间、函数的嵌套、global及nonlocal的更多相关文章
- Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global以及nolocal的用法
Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global以及nolocal的用法 目录 Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global ...
- 函数的名称空间,函数的嵌套(global, nonlocal),函数名的运用
一 函数的名称空间 内置空间:存放python解释器内置函数的空间 全局空间:py文件运行时开辟的,存放的是执行的py文件(出去函数内部)的所有的变量与值的对用关系,整个py文件结束后才会消失. 局部 ...
- CSIC_716_20191111【函数对象、名称空间、作用域、global 和nonlocal】
函数名是可以被引用,传递的是函数的内存地址.函数名赋值给变量后,只需要在变量后加上括号即可调用函数. 名称空间 内置名称空间:在python解释器中提前定义完的名字 全局名称空间:if.while.f ...
- day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义
复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的 ...
- python27期day10:函数的动态参数、函数的注释、函数的名称空间、函数的嵌套、global(修改全局的)、nonlocal(修改局部的)、函数名的第一类对象及使用、作业题。
1.动态参数的作用: 能够接收不固定长度参数 位置参数过多时可以使用动态参数 * args是程序员之间约定俗称(可以更换但是不建议更换) * args获取的是一个元组 ** kwargs获取的是一个字 ...
- python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
一.动态参数 def func(a,b,c,d,e,f,g): pass func(1,2,3,4,5,6,7) 如果加30个参数呢?有没有万能的参数,可以代表一切参数呢? *args 动态参数,万能 ...
- python day- 10 动态参数 函数的嵌套 命名空间和作用域 global和nolocal
一.动态参数: 动态参数是形参的一类 分为:动态位置参数(* + 函数名)表示 调用后返回的是元祖 动态关键字参数(** + 函数名)表示 形参的排列顺序: 位置参数 > 动态位置参 ...
- python 函数的动态参数 命名空间,作用域以及函数嵌套,global和nonlocal (重点)
*** 坚持坚持,即使你不太强*** 1.函数的动态传参 2.函数的命名空间及作用域 3.函数嵌套 4.global和nonlocal关键字 一.函数的动态传参 1. *args: 位置参数动态传参, ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
随机推荐
- npkill 一个方便的npm 包清理工具
npm 包很好用,但是占用空间太多了,npkill 提供了一个方便的工具,可以帮助我们查找安装的npm 包,以及进行清理 安装 npm install -g npkill 简单使用 命令 npkill ...
- kuma docker-compose 环境试用
当前官方暂时还没有使用docker-compose 运行kuma 的demo(太复杂没必要),但是做为一个本地的测试环境使用 docker-compose 运行下通用模式的kuma 还有比较有意义的, ...
- 性能测试-GC问题整理
年轻代与老年代的调优(笔记整理) 几个常见名词 年轻代(young 区)从年轻代空间(包括Eden和Survivor 区域)回收内存被称为 Minor GC空间太小可能导致对象直接进入 old区 .如 ...
- 第08组 Beta冲刺(1/4)
队名 八组评分了吗 组长博客链接(2分) 小李的博客 作业链接 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 12月3号了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任 ...
- html在div中显示滚动条
基本思路:滚动条要添加到内容部分的父标签上(div),内容部分不设置大小,父标签要明确设置大小,并且父标签要添加overflow样式,并设置成auto. 打开的效果如下: 这时可能有人会问,父div的 ...
- WordPress入门 之 设置导航菜单
WordPress 3.0 添加了一个自定义导航菜单的功能,让你可以很自由地设置网站的导航菜单.现在大多数的主题也都支持这个功能了,那么,究竟该如何设置WordPress导航菜单?今天倡萌就介绍一下. ...
- SonarQube7.4安装和使用
声明 本文转自:https://www.jianshu.com/p/dd4a4bc59fc3?from=singlemessage 正文 近期比较关注代码的检测,之前由于用的findbugs,因此没有 ...
- 解决:File "/usr/lib/python2.7/site-packages/more_itertools/more.py", line 340 def _collate(*iterables, key=lambda a: a, reverse=False): 的报错
cyberb commented on 15 Apr Traceback (most recent call last): File "/snap/users/x1/python/bin/l ...
- WebRTC搭建前端视频聊天室——数据通道篇
本文翻译自WebRTC data channels 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩展成 ...
- C# Selenium操作指南,关闭黑色CMD窗口/禁用图片/隐藏浏览器等
引用部分:1. 2. 配置部分: ChromeDriverService driverService = ChromeDriverService.CreateDefaultService(); dri ...