从可变长函数到legb
可变长参数
*
*形参
用元组接收接收多余的位置实参
约定俗成形参名为 *args
def f1(*args):#调用函数时,有多少个参数我就接收多少个
res = 0
for num in args:
res += num
return res
res = sum_self(1, 2, 3, 4)
print(res) # 10
*实参
打散列表,然后以位置实参传给位置形参
def func(x, y, z, *args):
print(x, y, z, args)
func(1, *(1, 2), 3, 4)
# 1 1 2 (3, 4)
**
**形参
用字典接收多余的关键字实参
约定俗成形参名为 **kwargs
def func(**kwargw):
print(kwargw)
func(a=5) # 接收关键字实参 {'a': 5}
**实参
打散字典,然后以关键字实参传给位置形参
def func(x, y, z, **kwargs):
print(x, y, z, kwargs)
func(1, 3, 4, **{'a': 1, 'b': 2}) # 1 3 4 {'a': 1, 'b': 2}
*形参**形参
接收所有多余的参数
函数对象
作为函数的返回值
函数对象 == 函数名 , 变量对象可以做的函数对象也可以。函数对象的四大功能如下:
- 引用
- 当做容器类元素
- 当做参数传给一个函数
- 当做函数的返回值
函数嵌套
def 函数名():
def 函数名():
代码块
外面不能引用内部定义的函数
名称空间于作用域
内置名称空间
内置名称空间:存放Pyhton解释器自带的名字,如int、float、len
生命周期:在解释器启动时生效,在解释器关闭时失效
全局名称空间
全局名称空间:除了内置和局部的名字之外,其余都存放在全局名称空间
生命周期:在文件执行时生效,在文件执行结束后失效
局部名称空间
局部名称空间:用于存放函数调用期间函数体产生的名
生命周期:在文件执行时函数调用期间时生效,在函数执行结束后失效
执行顺序
内置--》局部--》全局
搜索顺序
从当前位置开始 局部--》全局--》内置--》报错
作用域
作用域关系在函数定义阶段就固定死了,与函数的调用无关
全局作用域
全局作用域的x和局部作用域的x没有半毛钱关系,可变数据类型除外
局部作用域
局部作用域1和局部作用域2的x没有半毛钱关系
global
局部可以修改全局的
nonlocal
局部的修改外层局部的
legb
从可变长函数到legb的更多相关文章
- (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)
什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...
- PHP可变长函数方法介绍
1.三个重要函数 func_num_args() 返回实参个数 func_get_arg(i) 返回某个实参的值 func_get_args() 以数组的形式返回实参 ...
- [C]va_list可变长参数的使用
一.概述 运用标准C的头文件stdarg.h提供的宏可以实现函数的自定义传参个数: 二.语法 1.va_list是一个可变长参数类型,在使用可变长参数的函数中可以定义1个或多个va_list类型参数, ...
- python 函数可变长参数
python中的可变长参数有两种: 一种是非关键字参数(*元组),另一种是关键字参数(**字典) 非关键字可变长参数: """ 非关键字可变参数,一个星号作为元组传入函数 ...
- Noah的学习笔记之Python篇:函数“可变长参数”
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- [转]深度探索C语言函数可变长参数
转自:http://www.cnblogs.com/chinazhangjie/archive/2012/08/18/2645475.html 一.基础部分 1.1 什么是可变长参数 可变长参数:顾名 ...
- day11 函数的位置形参,位置实参,可变长位置形参,关键字形参
今天内容 函数的参数详解 形参与实参 形参及形式参数,就是在定义函数是括号中指定的参数(本质就是一个名字) 实参及实际参数,指的是在调用函数是传入的参数)(本质就是一个值) 在调用函数是就会把形参和实 ...
- go实例—函数或方法的可变长参数
支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 package ...
- Python中函数的参数传递与可变长参数
转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...
随机推荐
- 2019牛客多校第⑨场E All men are brothers(并查集+组合数学)
原题:https://ac.nowcoder.com/acm/contest/889/E 思路: 做并查集,维护每个集合大小,初始化操作前的总方案数,每次合并两个集合时减少的数量=合并的两个集合大小相 ...
- 一个线上Java空指针问题的排查经过
某天,运营反馈,某商品下单异常 1.原来是一个空指针报错 根据用户输入的下单关键信息搜索日志系统看到如下报错 stackTrace: "java.lang.NullPointerExcept ...
- 2059-authentication plugin 'caching_sha2_password"cnnot bt loaded :mysql8.0数据库连接不上(Navicat)
原因:8.0改变了 身份验证插件 , 打开 my.ini (或者my.cofg) 可以看到变更了 5.7及其以前的方式:mysql_native_password 办法: 1:命令行键入数据库: my ...
- bootstrap学习(四)表格
基础样式: 自适应沾满浏览器 <table class="table"> <tr> <th>序号</th> <th>姓名 ...
- stat - 打印信息节点(inode)内容
SYNOPSIS(总览) stat filename [filenames ... ] DESCRIPTION(描述) stat 打印出一个信息节点的内容,它们显示为对人可读的格式的stat(2). ...
- Java中this的基础用法
update on 2019-07-07 在Java核心技术一书中看到调用方法时this作为隐式参数传入的. 突然间许多问题都懂了 比如:方法的多态 父类变量指向子类对象的引用 对象变量指向的实际类型 ...
- JMeter 并发压力测试
一,下载JMeter http://jmeter.apache.org/download_jmeter.cgi 二,创建默认配置 可以不用配置相同参数. 测试计划:右键添加线程组 线程组:右键添加 ...
- propTypes和 defaultProps
propTypes和 defaultProps propTypes: 可以 用来做类型的校验 限制类型 isRequired 必须要求传递 要使用必须先引入: import PropTypes fro ...
- 【BZOJ5093】图的价值
题面 Description "简单无向图"是指无重边.无自环的无向图(不一定连通). 一个带标号的图的价值定义为每个点度数的k次方的和. 给定n和k,请计算所有n个点的带标号的简 ...
- kNN算法和决策树
的整数. 下面看书上给出的实例: from numpy import * import operator def createdataset(): group=array([[1.0,1.1],[1. ...