可变长参数

*

*形参

用元组接收接收多余的位置实参

约定俗成形参名为 *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}

*形参**形参

接收所有多余的参数

函数对象

作为函数的返回值

函数对象 == 函数名 , 变量对象可以做的函数对象也可以。函数对象的四大功能如下:

  1. 引用
  2. 当做容器类元素
  3. 当做参数传给一个函数
  4. 当做函数的返回值

函数嵌套

def 函数名():
def 函数名():
代码块

外面不能引用内部定义的函数

名称空间于作用域

内置名称空间

内置名称空间:存放Pyhton解释器自带的名字,如int、float、len

生命周期:在解释器启动时生效,在解释器关闭时失效

全局名称空间

全局名称空间:除了内置和局部的名字之外,其余都存放在全局名称空间

生命周期:在文件执行时生效,在文件执行结束后失效

局部名称空间

局部名称空间:用于存放函数调用期间函数体产生的名

生命周期:在文件执行时函数调用期间时生效,在函数执行结束后失效

执行顺序

内置--》局部--》全局

搜索顺序

从当前位置开始 局部--》全局--》内置--》报错

作用域

作用域关系在函数定义阶段就固定死了,与函数的调用无关

全局作用域

全局作用域的x和局部作用域的x没有半毛钱关系,可变数据类型除外

局部作用域

局部作用域1和局部作用域2的x没有半毛钱关系

global

局部可以修改全局的

nonlocal

局部的修改外层局部的

legb

从可变长函数到legb的更多相关文章

  1. (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)

    什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...

  2. PHP可变长函数方法介绍

    1.三个重要函数 func_num_args()  返回实参个数 func_get_arg(i)    返回某个实参的值       func_get_args()        以数组的形式返回实参 ...

  3. [C]va_list可变长参数的使用

    一.概述 运用标准C的头文件stdarg.h提供的宏可以实现函数的自定义传参个数: 二.语法 1.va_list是一个可变长参数类型,在使用可变长参数的函数中可以定义1个或多个va_list类型参数, ...

  4. python 函数可变长参数

    python中的可变长参数有两种: 一种是非关键字参数(*元组),另一种是关键字参数(**字典) 非关键字可变长参数: """ 非关键字可变参数,一个星号作为元组传入函数 ...

  5. Noah的学习笔记之Python篇:函数“可变长参数”

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  6. [转]深度探索C语言函数可变长参数

    转自:http://www.cnblogs.com/chinazhangjie/archive/2012/08/18/2645475.html 一.基础部分 1.1 什么是可变长参数 可变长参数:顾名 ...

  7. day11 函数的位置形参,位置实参,可变长位置形参,关键字形参

    今天内容 函数的参数详解 形参与实参 形参及形式参数,就是在定义函数是括号中指定的参数(本质就是一个名字) 实参及实际参数,指的是在调用函数是传入的参数)(本质就是一个值) 在调用函数是就会把形参和实 ...

  8. go实例—函数或方法的可变长参数

    支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 package ...

  9. Python中函数的参数传递与可变长参数

    转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...

随机推荐

  1. Centos7安装 Hadoop(单节点)

    1.Hadoop简介 Hadoop是一个由Apache基金会所开发的开源分布式系统基础框架,使用Java开发,是处理大规模数据的软件平台. Hadoop可以从单一节点扩展到上千节点.用户可以在不了解分 ...

  2. java算法汇总(一)

    1.有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子涨到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月兔子总数为多少? 程序分析:斐波那契数列 0.1.1.2.3.5.8.13.21 ...

  3. 这 17 个 JVM 参数,高级 Java 必须掌握!

    作者:SimpleSmile https://www.cnblogs.com/Simple-Object/p/10272326.html前言 大家都知道,jvm在启动的时候,会执行默认的一些参数.一般 ...

  4. 42-python基础-python3-字符串-原始字符串

    原始字符串 可以在字符串开始的引号之前加上 r,使它成为原始字符串. “原始字符串”完全忽略所有的转义字符,打印出字符串中所有的倒斜杠. 如果输入的字符串包含许多倒斜杠,比如正则表达式字符串,那么原始 ...

  5. Cas简介(一)

    Cas的全称是Centeral Authentication Service,是对单点登录SSO(Single Sign On)的一种实现.其由Cas Server和Cas Client两部分组成,C ...

  6. 解决码云未配置公钥问题——fatal: Could not read from remote repository.

    使用码云,键入“git push -u origin master” ,遇到如下问题: fatal: Could not read from remote repository.(致命:不能读远端仓库 ...

  7. junit单元测试报错Failed to load ApplicationContext,但是项目发布到tomcat浏览器访问没问题

    junit单元测试报错Failed to load ApplicationContext,但是项目发布到tomcat浏览器访问没问题,说明代码是没问题的,配置也没问题.开始时怀疑是我使用junit版本 ...

  8. 2019-8-31-How-to-parse-version-range

    title author date CreateTime categories How to parse version range lindexi 2019-08-31 16:55:58 +0800 ...

  9. python 数据的存储

    数据的存储 思考:为什么使用计算机?存储数据,计算数据 思考:数据存在哪里?数据存储在内存里 思考:数据怎么在内存里存储的?首先弄明白怎么存储数字 1010.5“sunck is a good man ...

  10. ES6常用点

    原文    http://es6.ruanyifeng.com/#docs 变量--------------------------------------------- 1.let声明.const声 ...