位置传递

我们在定义函数时候已经对函数进行了参数传递调用,但是那只是粗浅的位置传递

示例

def sum(a,b,c):
d = a+b+c
return d
print(sum(1,2,3))

调用函数sum的时候,1,2,3分别传递给a,b,c

关键字传递

关键字传递是根据每个参数的名字传递参数

print(sum(c=3,b=2,a=1))

关键字可以跟位置传递混合使用,但是位置参数要出现在关键字参数之前

print(sum(1,c=3,b=2))

参数默认值

在定义参数时,使用形如a=10的方式,可以给参数赋予默认值(default),如果参数最终没有被传递值,将使用该默认值。

def sum(b,c,a=10):
d = a+b+c
return d
print(sum(c=3,b=2))

默认值需要写在最后,否则报错!

调用时候没有a的值,则使用了默认值

打印屏幕结果为:

包裹传递

在定义函数时候,我们并不知道调用函数的时候需要传递多少个参数。这时候,使用包裹传递会非常有用

下面是包裹位置传递的例子

def func(*num):
print(type(num))
print(num) func(1,2,3)
func(1,2,3,44,56)

两次调用,尽管参数个数不同,但是都是基于函数func定义。在func的参数表中,所有的参数被name收集,根据位置合成了一个元组(tuple),这就是包裹传递

在元组前加*

下面是包裹关键字传递的例子

def func(**dict):
print(type(dict))
print(dict) func(a=1,b=2,c=3)
func(a=1,b=2,c=3,d=44,e=56)

dict是一个字典,收集所有的关键字,传递函数给func。为了提醒Python,参数dict是包裹关键字传递所用的字典,

在dict前加**

解包裹

*与**也可以在调用的时候使用

下面为例子:

def func(a,b,c):
print(a,b,c)
args = (1,6,3)
func(*args)

所谓的解包裹,就是在传递tuple时,让tuple的每一个元素对应一个位置参数。在调用func时使用*,是为了提醒Python:我想要把args拆成分散的三个元素,分别传递给a,b,c。

相应的,也存在对词典的解包裹,使用相同的func定义,然后:

def func(a,b):
print(a,b) dict={'a':1,'b':2}
func(**dict)

注意:请注意定义时和调用时的区分。包裹和解包裹并不是相反操作,是两个相对独立的过程。

【Python】学习笔记十三:函数的参数对应的更多相关文章

  1. python学习笔记之函数的参数

    函数的参数有位置参数和关键字参数,位置参数一定要在关键字参数的前面,位置参数的优先级是高于关键字参数的,否则会报错 def my_abs(a,b): print(a) print(b) my_abs( ...

  2. python学习笔记(3)--函数、参数、变量、递归

    1.函数基本语法和特性 背景摘要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏出了所有的知识量吗,写出了以下代码 whi ...

  3. Python学习笔记——以函数为参数的内置函数

    1.用法 一个参数 def ds(x): return 2 * x + 1 print(ds(5)) 11 g = lambda x : 2 * x + 1 print(g(5)) 11 两个参数 d ...

  4. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  5. python 学习笔记十三 JQuery(进阶篇)

    jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...

  6. 【Python学习之三】函数的参数

    在学习Python的过程中,我认为Python函数是很重要的一部分.其中参数的类型和数量,是一个比较容易弄混乱的点. 1.一般参数 首先,写一个计算两个数的和的函数: def addNum(x, y) ...

  7. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  8. python学习笔记(4)--函数

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

  9. Python学习笔记11—函数

    建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__==" ...

  10. 小甲鱼:Python学习笔记003_函数

    >>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...

随机推荐

  1. Mysql 事件记录 | performance_schema全方位介绍

    Mysql 事件记录 | performance_schema全方位介绍 | 导语 在上一篇 初相识|performance_schema全方位介绍 中,我们详细介绍了performance_sche ...

  2. MySql 面试开发技术点汇总

    表结构设计 1.为什么一定要设一个主键?  答:因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键.所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显 ...

  3. Jquery复习(五)之append()、appendTo()、prepend()、prependTo()、after()、before()易忘点

    添加元素的方法 append().appendTo().prepend().prependTo().after().before() 通过 append() .appendTo().prepend() ...

  4. 089、初探ELK (2019-05-13 周一)

    参考https://www.cnblogs.com/CloudMan6/p/7770916.html   在开源的日志管理方案中,最出名的莫过于ELK了.ELK是三个软件的合称: Elasticsea ...

  5. MySQL数据库入门多实例配置

    MySQL数据库入门——多实例配置 前面介绍了相关的基础命令操作,所有的操作都是基于单实例的,mysql多实例在实际生产环境也是非常实用的,因为必须要掌握 1.什么是多实例 多实例就是一台服务器上开启 ...

  6. PDF转图片,在线PDF转JPG/PNG

    [在线DEMO](https://oktools.net/pdf2img) 原理 使用pdf.js预览图片,pdf.js将pdf通过canvas将每一页渲染出来,然后我们通过canvas的toData ...

  7. FMDB-FMDatabaseQueue

    FMDB封装了SQLite3的方法,操作数据库变得很简单. 增删改查变简单之后,那么问题来了,如何使用多线程优化对数据库的操作? 这是我们的第一反应估计是dispatch_async(). 那么问题又 ...

  8. 企业级开发账号In House ipa发布流程

    这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号.在网上查了一下资料,感觉没有一个比较完善的流程,于是决定把整个流程写下来,供大家参考. 首先详细说明一下我们的目标,我们需要发布 ...

  9. 用python实现js语言里的特性

    有大佬说:“搜 arraybuffer 的 polyfill 然后翻译成 python就行了” ...

  10. scp 自动带密码参数复制文件到主机

    一.安装sshpass工具 [root@zabbix_server scripts]# yum install sshpass 二.运行 [root@zabbix_server scripts]# s ...