1. 可接受任意数量位置参数的函数

为了能让一个函数接受任意数量的位置参数,可以在参数部分使用“*”。

def avg(first, *rest):
return (first + sum(rest) / (1 + len(rest)))
print(avg(1, 2)) #1.5
print(avg(1, 2, 3, 4)) #2.5

在上面这个函数中,rest是由所有其他位置参数组成的元组。

然后我们在代码中把它当成了一个序列来进行后续的计算。

2. 可接受任意数量关键字参数的函数

为了接受任意数量的关键字参数,使用一个以**开头的参数。比如:

def stu_info(**kwargs):
print(kwargs)
print(kwargs["name"], kwargs["sex"])
stu_info(name="yang", sex = "male")

3. 可同时接受任意数量位置参数和关键字参数的函数

如果还系统希望某个函数能同时接受任意数量的位置参数和关键字参数,可以同时使用*和**。比如:

def anyargs(*args, **kwargs):
print(args)
print(kwargs)

在使用这个函数时,所有的位置参数会被放到args元组中,而所有的关键字参数会放到字典kwargs中。

4. *和**的位置

一个*参数只能出现在函数定义中最后一个位置参数后面,而**参数只能出现在最后一个参数。需要注意的是,在*后面仍然可以定义其他参数。

def a(x, *args, y):
pass
def b(x, *args, y, **kwargs):
pass

这种参数就是强制关键字参数。

 

Python基础之可接受任意数量参数的函数的更多相关文章

  1. Python 构造一个可接受任意数量参数的函数

    为了能让一个函数接受任意数量的位置参数,可以使用一个* 参数 在这个例子中,rest 是由所有其他位置参数组成的元组.然后我们在代码中把它当成了一个序列来进行后续的计算

  2. js 函数作为参数+接受任意数量参数

    javascript中的函数是“复合数据类型”,又成为“引用类型”.引用类型的变量指向存储单元中存放的是它们的实际存放地址.函数名是对函数的一种引用.var a=max_num ;a()就可以调用fu ...

  3. 请写一个php函数,可以接受任意数量的参数

    请写一个php函数,可以接受任意数量的参数 这是一道面试题.怎么写这个函数呢? function fun(......) { } ----------------------------------- ...

  4. 研究不定数量参数的函数并实现一个printf函数

    一.前提知识 1.如何传递参数(主函数) a.函数的参数是通过栈传递,而且是从右到左依次入栈 b.即使是char型变量,在传递参数时,也是占用两个字节,因为push操作是两个字节为单位的. c.sho ...

  5. Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...

  6. Python基础(三)——集合、有序 无序列表、函数、文件操作

    1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...

  7. Python基础学习参考(三):内置函数

    一:内置函数 在第一篇文章中,我们简单的认识了一下print()函数和input()函数,也就是输入和输出,这些函数我们可以直接的调用,不要自己定义或者引入什么,对吧?想这样的函数就叫做内置函数.这里 ...

  8. Python基础笔记:函数式编程:高阶函数、返回函数、匿名函数

    高阶函数 高阶函数:一个函数可以接收另一个函数作为参数 或 一个函数可以返回一个函数作为返回值,这种函数称之为高阶函数. #函数 add 接收 f 函数作为参数 >>> def ad ...

  9. Python 基础【第四篇】参数

    程序运行避免不了需要一些参数来支持 那么如何让程序接收参数呢?这里先简单的用sys模块的参数 sys.argv[]方法来实现参数获取 1.用法: import sys   //导入sys模块后期会详细 ...

随机推荐

  1. python—各种常用函数及库

    列表list1.append(x)         将x添加到列表末尾 list1.sort()                对列表元素排序 list1.reverse()            将 ...

  2. UI5-技术篇-Implementing Expand Entity/Entity Set

    转载:https://blogs.sap.com/2014/07/18/implementing-expand-entityentity-set/ Requirement Considering a ...

  3. 发现一个对列排版挺好用的命令:column

    help [root@hdpool1 tmp]# column -h Usage: column [options] [file ...] Options: -c, --columns <wid ...

  4. Chrome安装crx文件的插件时出现“程序包无效”

    有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python   https://www.cnblogs.com/xxtalhr/p/11043453.html 链接:https: ...

  5. 使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输

    SAP ABAP顾问朋友们,应该都使用过SAPLink这个工具.如果两个ABAP Netweaver系统没有建立起传输路径时,我们无法使用标准的SE10事务码创建传输请求的方式进行这两个系统间的代码传 ...

  6. OpenStack kilo版(6) 启动第一台虚拟机

    创建网络 提供者为external,类型为flat,网络名称为public,: root@controller:~# neutron net-create --shared --provider:ph ...

  7. 什么是软件工具开发包(SDK)

    开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:将编写的程序进行翻译. 调试:程序不可能一次性编写成功,编写过程中难免会出现语法.语义上的错误,调 ...

  8. Android笔记(三十三) Android中线程之间的通信(五)Thread、Handle、Looper和MessageQueue

    ThreadLocal 往下看之前,需要了解一下Java的ThreadLocal类,可参考博文: 解密ThreadLocal Looper.Handler和MessageQueue 我们分析一下之前的 ...

  9. Python面向对象之多态、封装

    一.多态 超过一个子类继承父类,出现了多种的形态. 例如,动物种类出现了多种形态,比如猫.狗.猪 class Animal:pass class Cat(Animal):pass class Dog( ...

  10. kubernetes---ConfigMap管理应用配置

    1.拆分环境 主机名 角色 ip hdss7-11.host.com zk1.od.com(Test环境) 10.4.7.11 hdss7-12.host.com zk2.od.com(Prod环境) ...