一  函数的动态参数

*agrs  位置参数动态传参

*args  接收多个位置参数

 def func(*args):
print(args) func("女儿国","西游记","猪八戒","孙猴子","从来如此",)
tu = ("女儿国","西游记","猪八戒","孙猴子","从来如此")
6func(*tu) 返回的是元组 *args 聚合
*tu 打散

**kwagrs  关键字参数动态传参

** 接收多个关键字参数

 def func(**kwargs):
print(kwargs) func(jj = '林俊杰',jay = '周杰伦',pyy = "彭于晏")
dic = {'jj' : '林俊杰','jay' : '周杰伦','pyy' : "彭于晏"}
func(**dic) 返回的是字典 **kwargs 聚合
**dic 打散

参数的顺序: 位置参数   *agrs   默认值参数   **kwargs

 def func(*args,**kwargs):   什么都能接收    可以说是无敌
pass

形参位置:  *  **   是聚合
实参位置:  *  **   是打散

函数的注释

def func(a , b):
'''
计算两个数的和
:param a: 用户给的第一个数
:param b: 用户给的第二个数
:return: 返回两个的和
'''
sum = a+b
return sum 又称文档注释

命名空间

内置命名空间: 存放python解释器为我们提供的名字, int , str ,list ,tuple , dict  这些都是内置命名空间
全局命名空间: 我们直接在py文件中,函数外声明的变量都属于全局命名空间
局部命名空间:函数中声明的变量会放在局部命名空间

局部变量:只在函数内部起作用的变量

全局变量:在整个程序中都起作用

a = 20  # 全局变量
def func():
a = 10 #局部变量
print(a)
func()

作用域:  全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序;

当全局变量与局部变量同名时: 在定义局部变量的子程序内,局部变量起作用; 在其他地方全局变量起作用

globas():  查看全局作用域的内容
locals():  查看局部作用域的内容

a = 20
def func():
a = 10
b = 30
def asd():
print("哈哈")
print(a,b) 使用的局部作用域
print(globals()) 打印全局作用域的内容
print(locals()) 打印局部作用域的内容 func()

函数的嵌套

函数的可以互相嵌套

a = 1
def fun_1():
a = 2
def fun_2():
nonlocal a
a = 3
def fun_3():
a = 4
print(a)
print(a)
fun_3()
print(a)
print(a)
fun_2()
print(a)
print(a)
fun_1()
print(a) 结果
1
2
3
4
3
3
1

global 和  nonlocal  关键字

global : 在局部访问全局中的内容

nonlocal : 在局部寻找外层函数中离他最近的那个变量



Python函数的进阶的更多相关文章

  1. 小学生都能学会的python(函数的进阶)

    小学生都能学会的python(函数的进阶) 1. 动态传参 形参: 1. 位置参数 2. 默认值参数 3. 动态传参 *args 动态接收位置参数 **kwargs 动态接收关键字参数 def fun ...

  2. python 函数的进阶

    1. 动态参数 位置参数的动态参数: *args 动态接收参数的时候要注意: 动态参数必须在位置参数后面 顺序: 位置参数, 动态参数*, 默认值参数 例子: def chi(a, b, *food, ...

  3. Python函数基础进阶

    函数参数的另一种使用方式 def print_info(name,age): print("Name: %s" %name) print("age: %d" % ...

  4. Python函数部分

    Python函数的初识 Python函数的进阶 Python中的闭包与迭代器 Python生成器/推导式/生成器表达式 Python内置函数二 (递归函数,匿名函数,二分法)

  5. python函数-函数进阶

    python函数-函数进阶 一.命名空间和作用域 1.命名空间 内置命名空间 —— python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被 ...

  6. 第六篇:Python函数进阶篇

    在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点:  一.Python的迭代器 ...

  7. 第5章函数进阶 第5.1节 Python函数的位置参数、关键字参数精讲

    前面第二章简单介绍了函数定义的语法,经过后面一系列的学习,函数有必要再次介绍一下相关内容. 一.    关于函数的语法 1.    语法 def 函数名([参数]): 函数文档字符串 函数体      ...

  8. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  9. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

随机推荐

  1. 国外DDoS产品的一些调研—— Akamai Arbor Networks Cloudflare DOSarrest F5 Fastly Imperva Link11 Neustar Nexusguard Oracle (Dyn) Radware Verisign

    Global DDoS Threat LandscapeQ4 2017 https://www.incapsula.com/ddos-report/ddos-report-q4-2017.html,D ...

  2. C++友元函数实现

    友元函数是一种特殊的函数,它必须要在类中进行声明,但其本身并不是类的成员函数,但友元函数可以访问类的私有成员变量. 友元函数的好处: 1.实现类之间的数据共享 2.提高程序运行效率,方便编程 友元函数 ...

  3. Image Pyramid (二)

    上一篇文章里,我们介绍了图像金字塔的基本原理,就是一种分层次的下采样.这篇文章里我们简单介绍一下图像金字塔的一种应用,image blending.利用图像金字塔做 image blending,可以 ...

  4. Kali Linux破解wifi密码(WEP)

    WEP是无线路由器最初广泛使用的一种加密方式,这种加密方式非常容易被破解. 目前很少有人使用wep加密方式,但是还是会有. 建议:使用WPA/WPA2做为加密方式. 抓包和"破解wpa/wp ...

  5. 记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障

    一.故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout. 不过奇怪的是,当团队中的某个人无 ...

  6. 深入了解ZooKeeper(二)

    在上篇博客<<深入了解ZooKeeper(一)>>中我们知道了分布式协调技术.分布式锁的实现和zookeeper服务机制,接下来将进一步了解zookeeper究竟能为我们做了什 ...

  7. bzoj 1500 维修序列

    Written with StackEdit. Description 请写一个程序,要求维护一个数列,支持以下 \(6\) 种操作: 请注意,格式栏 中的下划线' _ '表示实际输入文件中的空格 I ...

  8. Auto Layout简单应用——以编码的方式实现Auto Layout自动布局(二)

    在上一篇文章iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)中我们简单的介绍了使用Visual Format Language创建布局约束来实现自动布局,这种方法创建的布局约 ...

  9. TCP传输控制协议

    TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ...

  10. JAVA如何以追加的方式向文件中写入信息?

    以FileWriter类为例: FileWriter的构造方法中有一个方法是:FileWriter(String fileName, boolean append)  ,其中第二个参数决定了写文件的方 ...