【Python】学习笔记十三:函数的参数对应
位置传递
我们在定义函数时候已经对函数进行了参数传递调用,但是那只是粗浅的位置传递
示例
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】学习笔记十三:函数的参数对应的更多相关文章
- python学习笔记之函数的参数
函数的参数有位置参数和关键字参数,位置参数一定要在关键字参数的前面,位置参数的优先级是高于关键字参数的,否则会报错 def my_abs(a,b): print(a) print(b) my_abs( ...
- python学习笔记(3)--函数、参数、变量、递归
1.函数基本语法和特性 背景摘要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏出了所有的知识量吗,写出了以下代码 whi ...
- Python学习笔记——以函数为参数的内置函数
1.用法 一个参数 def ds(x): return 2 * x + 1 print(ds(5)) 11 g = lambda x : 2 * x + 1 print(g(5)) 11 两个参数 d ...
- Python学习笔记之函数
这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...
- python 学习笔记十三 JQuery(进阶篇)
jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...
- 【Python学习之三】函数的参数
在学习Python的过程中,我认为Python函数是很重要的一部分.其中参数的类型和数量,是一个比较容易弄混乱的点. 1.一般参数 首先,写一个计算两个数的和的函数: def addNum(x, y) ...
- Python学习笔记(五)函数和代码复用
函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...
- python学习笔记(4)--函数
1.函数 函数是指将一组语句的集合通过一个名字封装起来.要想执行这个函数,只需调用其函数名即可. 函数的特性: 1.减少重复代码 2.使程序变的课扩展 3.使程序变得易维护 语法定义: def pri ...
- Python学习笔记11—函数
建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__==" ...
- 小甲鱼:Python学习笔记003_函数
>>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...
随机推荐
- reload() 方法用于重新加载当前文档。配合Ajax异步请求。
1. reload() 方法, reload() 方法用于重新加载当前文档.配合Ajax异步请求. http://www.w3school.com.cn/jsref/met_loc_reload.as ...
- PHP:API 接口规范完整版本
整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...
- SpringBoot在macOS下启动慢的原因
title: SpringBoot在macOS下启动慢的原因 comments: false date: 2019-07-16 09:48:24 description: 在 macOS + JDk1 ...
- help_topic表,以字符拆分,一行转多行
help_topic表是数据库mysql下的一个表 SUBSTRING_INDEX(s, delimiter, number) 返回从字符串 s 的第 number 个 ...
- java 内部类复习
/** * 内部类详解 * * @author shao * */ public class InnerClass { public static void main(String[] args) { ...
- Flask开发系列之Web表单
Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_template app = Flask(__name__) @app.ro ...
- Java中的==和equals( )方法
在Java中,equals和==都是用于检测两个字符串是否相等,返回类型也都是boolean值,但是二者内部处理却不一样. ==与equals( ) ==在Java中是一个二元操作符,用于比较原生类型 ...
- Ubuntu分区方案(菜鸟方案、常用方案和进阶方案)
菜鸟方案 “/”与swap两个分区就可以应付绝大多数的应用 常用方案 分为3个区 1. 挂载点/:主分区:安装系统和软件:大小为30G:分区格式为ext4: 2. 挂载点/home:逻辑分区:相当于“ ...
- 6U VPX 加固智能计算异构服务器
6U VPX 加固智能计算异构服务器 北京太速科技有限公司在线客服:QQ:448468544 公司网站:www.orihard.com联系电话:15084122580
- Qualcomm_Mobile_OpenCL.pdf 翻译-8-kernel性能优化
这章将会说明一些kernel优化的小技巧. 8.1 kernel合并或者拆分 一个复杂的应用程序可能包含很多步骤.对于OpenCL的移植性和优化,可能会问需要开发有多少个kernel.这个问题很难回答 ...