Python函数的进阶
一 函数的动态参数
*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函数的进阶的更多相关文章
- 小学生都能学会的python(函数的进阶)
小学生都能学会的python(函数的进阶) 1. 动态传参 形参: 1. 位置参数 2. 默认值参数 3. 动态传参 *args 动态接收位置参数 **kwargs 动态接收关键字参数 def fun ...
- python 函数的进阶
1. 动态参数 位置参数的动态参数: *args 动态接收参数的时候要注意: 动态参数必须在位置参数后面 顺序: 位置参数, 动态参数*, 默认值参数 例子: def chi(a, b, *food, ...
- Python函数基础进阶
函数参数的另一种使用方式 def print_info(name,age): print("Name: %s" %name) print("age: %d" % ...
- Python函数部分
Python函数的初识 Python函数的进阶 Python中的闭包与迭代器 Python生成器/推导式/生成器表达式 Python内置函数二 (递归函数,匿名函数,二分法)
- python函数-函数进阶
python函数-函数进阶 一.命名空间和作用域 1.命名空间 内置命名空间 —— python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被 ...
- 第六篇:Python函数进阶篇
在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点: 一.Python的迭代器 ...
- 第5章函数进阶 第5.1节 Python函数的位置参数、关键字参数精讲
前面第二章简单介绍了函数定义的语法,经过后面一系列的学习,函数有必要再次介绍一下相关内容. 一. 关于函数的语法 1. 语法 def 函数名([参数]): 函数文档字符串 函数体 ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
随机推荐
- 【deep learning精华部分】稀疏自编码提取高阶特征、多层微调完全解释及代码逐行详解
我们前面已经讲了如何训练稀疏自编码神经网络,当我们训练好这个神经网络后,当有新的样本输入到这个训练好的稀疏自编码器中后,那么隐藏层各单元的激活值组成的向量就可以代表(因为根据稀疏自编码,我们可以用来恢 ...
- C#中的异常捕获机制(try catch finally)
(转自:http://blog.csdn.net/zevin/article/details/6901489) 一.C#的异常处理所用到关键字try 用于检查发生的异常,并帮助发送任何可能的异常.ca ...
- LeetCode OJ:Maximum Product Subarray(子数组最大乘积)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- Web目录结构
/: Web应用的跟目录,该目录下所有文件在客户端都可以访问(JSP,HTML) /WEB-INF: 存放应用使用的各种资源.该目录及其子目录对客户端都是不可以访问的, 其中包括web.xml(部署表 ...
- ndoutils_mq项目: 发送Nagios的性能、报警、配置文件到RabbitMQ
本人目前开发的一个项目,改造ndoutils,主要是它的ndomod. 将性能.报警.配置文件使用JSON格式发送到RabbitMQ. 由于NEB(Nagios Event Broker)使用C开发, ...
- Python探索记(17)——函数
# @Time : 2017/7/8 18:40 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...
- Oracle 实用技巧
一.rlwrap 在 linux中使用sqlplus对数据库进行操作,常常由于敲错命令或需要反复执行某条语句,需要像linux本身有的历史回调的功能, rlwrap 可以用来支持oracle下sqlp ...
- 前端导出Excel
1.首先,需要下载一个叫better-xlsx,的插件,以yarn 为例 ' yarn add better-xlsx --save '下载相关依赖包( npm 方式 ' npm i better-x ...
- hexo配置主题发表文章
将本地hexo博客部署到github上了,如果想换我们自己喜欢的主题(默认为landscape),同时也要发表发表文章呢,下面给介绍下: 1,进入hexo官网,预览自己想要的主题,https://gi ...
- Markdown编辑器推荐与语法教程--图片版
请参考Markdown编辑器推荐与语法教程--展示版或者Markdown编辑器推荐与语法教程--展示版看具体效果,当然,大家也可以下载Mou亲自体验一把 End