python 点滴记录11:函数参数的收集

8python中,当在不确定给函数传递参数的个数时,可以使用*args和**kargs形式(args、kargs可以使用其他名称定义)。

一、*args形式

eg1:

def func(x,*a):
        print x
        print a
        
func(1,2,3,4,5)

调用函数后结果为:

1
(2, 3, 4, 5)

从过结果可看出,在使用*a后,当给函数传递多个参数时,函数会将第一个实参传递给第一个型参,然后将剩下的实参传递给了*a,而*a将剩下的参数放在了一个元组中。

如果函数中定义了(x,*a),而传递参数的时候,只传了一个实参,那么*a将会生成一个空的元组。

eg2:

def func(x,*a):
        print x
        print a
        
func(1)

调用函数后结果为:

1
()

从结果可以看出,参数1传给了x,而*a生成了一个空的元组。

需要注意的是,当元素中只有一个元素时,该元素后面需要加一个“,”

eg3:

def func(x,*a):
        print x
        print a
        
func(1,2)

调用函数后结果为:

1
(2,)

元组里面只有一个元素2,后面还有一个“,”。

二、*kargs形式

*kargs形式会将接收到的参数存在一个字典中,因此,在传递参数时,需要以键值队的形式。

eg1:

def func(i,**a):
        print a
        print i
        
func(3,x=4)

执行结果为:

{‘x‘: 4}
3

注意参数传递的方式:x=4

时间: 2024-10-11 23:14:11

python 点滴记录11:函数参数的收集的相关文章

python 学习笔记 11 -- 使用参数使你的程序变得更性感

当然,在之前的系列中,我已介绍如何给 Python 脚本传参,当然,今天不会继续介绍这么无聊的东东.首先使用 python 的sys.argv 传参的话,就固定了参数的个数.顺序以及格式,这么死的规定如何性感? I have a dream , to make my code much sexer ! 今天我们简单介绍一下如何更加随性的给 python 脚本传参.效果如下: [email protected]:/tmp$ python arg.py -h NAME: project with u

python 点滴记录6:ubuntu 安装pycharm

想在ubuntu下学习python开发,IDE准备使用pycharm.记录一下安装过程: 要想运行pycharm,需要有java环境,因为pycharm是用java编写的.ubunutn系统默认安装的是openjdk,而我们需要的是oracle java. 搜索oracle的java软件包: apt-cache search oracle-java 搜不到任何包. 搜索openjdk包: apt-cache search java7 出现类似以下安装包: openjdk-7-jdk - Open

Python学习6.1_函数参数及参数传递

大多数编程语言都绕不开一个名词,那就是--函数(function).而函数很重要的部分则是参数(arguments)的使用.Python的参数传递总体来说是根据位置,传递对应的参数.阐述如下: 1.位置参数及传递: 位置参数:顾名思义位置参数是根据形参的位置先后顺序传入的. 如下:定义一个测试函数,传入三个参数,然后依次打印出这三个参数: def fun(first, second, third): print first, second, third if __name__ == '__mai

Python学习笔记11—函数

建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__=="__main__": add_function(2,3) 在定义函数的时候,参数可以像前面那样,等待被赋值,也可以定义的时候就赋给一个默认值.例如 >>> def times(x,y=2): #y的默认值为 2 ... print "x=",x ... prin

python 基础篇 11 函数进阶----装饰器

11. 前??能-装饰器初识本节主要内容:1. 函数名的运?, 第?类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ?. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 叫闭包 可以使用_clesure_检测函数是否是闭包  返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不?定了, 因为在外部,

Python学习记录3-函数参数详解

参数详解 参数分类 普通参数 默认参数 关键字参数 收集参数 普通参数 定义时直接定义变量名 调用的时候直接把变量或者值放入指定位置 def 函数名 (参数1, 参数2, ....): 函数体 # 调用 函数名 (value1, value2, ....) # 调用的时候,具体值参考的是位置,按位置赋值 默认参数 形参带有默认值 调用的时候,如果没有对相应形参赋值,则使用默认值 def func_name(p1=v1, p2=v2, ....): func_block #调用1 func_nam

Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型

今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 l = [1, 2, 3] count = 0 while count<len(l): print(l[count]) count += 1 1.1 为什么要有迭代器? 字符串.列表.元组可以通过索引的方式迭代取出其中包含的元素 字典.集合.文件等类型,没有索引,只有通过不依赖索引的迭代方式

PYTHON学习0023:函数---参数----2019-6-17

参数作用:可以让函数更灵活,不只能做死的动作,还可以根据调用时传参的不同来决定函数内部执行流程.一.默认参数:以上函数中,countr这个形式参数,传入的实际参数基本都是"CN",就像我们在网站上注册,像国籍这种信息,用户不填写,默认就会是中国.就是通过默认参数实现的.那么把这个country变成默认参数很简单,写成如下即可:注意:默认参数必须放在位置参数最后面,否则影响传值. 二.关键参数:1.定义:正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可.(

python 点滴记录15:MAC OS安装MySQLdb

下载安装包:http://sourceforge.net/projects/mysql-python然后解压. 切换到目录下执行 python setup.py install 报错: EnvironmentError: mysql_config not found 解决:在安装包中找到site.cfg文件,将 #mysql_config =/usr/local/bin/mysql_config 修改为: mysql_config =/usr/local/mysql/bin/mysql_conf