Python 参数使用总结
Python 中参数的传递非常灵活,不太容易记住理解,特整理如下备忘:
普通参数
即按照函数所需的参数,对应位置传递对应的值,可以对应 Java 中的普通参数
def max(a, b):
if a > b:
return a
else:
return b max(5, 13) # = 13
默认参数
可以对位置参数中的某个参数设置默认值,设置了默认值的参数在调用时可以不传递
此时需要注意,默认参数只能在必选参数后面
def max(a, b=0):
if a > b:
return a
else:
return b max(5, 13) # = 13
max(5) # = 5
max(-6) # = 0
当有多个默认参数时,调用参数传递的值会按照顺序赋值,也可以通过指定参数值为特定参数赋值
def position(x, y=1, z=0):
print('x:', x, 'y:', y, 'z:', z) position(5) # x=5, y=1, z=0
position(5, 6) # x=5, y=6, z=0
position(5, z=6) # x=5, y=1, z=6
可变参数
即传递的参数个数不确定,可以对应为 Java 中的可变参数,类似传递了一个 list 或 tuple
可变参数只能出现在必选参数和默认参数后面
def max(*numbers):
# 此处可以有更简单的写法
sum = 0
for number in numbers:
sum += number
return sum
sum(1,2,3,4,5) # = 15
# 对于 list 或 tuple, 如 nums = [1,2,3,4,5], 可以这样使用
sum(*nums) # = 15
命名关键字参数
命名关键字有些像普通参数和默认参数的结合,在一个 * 后面的参数为命名关键字参数
和普通参数、默认参数的区别就是需要在传递参数时指定赋值给的参数名字
命名关键字参数只能出现在必选参数、默认参数、可变参数后面
def person1(name, *, age, sex):
print('name:', name, 'age:', age, 'sex:', sex) def person1=2(name, *, age=15, sex='F'):
print('name:', name, 'age:', age, 'sex:', sex) person1('zhang', age=15, sex='F') # 如果命名关键字参数没有设置默认值,则必须显示给每个参数赋值
person2('zhang') # 函数中已经对参数设置默认值
如果命名关键字参数前面有可变参数,则可省略 * 号
# age 和 sex 均是命名关键字参数
def person(name, *args, age, sex):
pass
关键字参数
关键字参数必须出现在必选参数、默认参数、可变参数、命名关键字参数后面
在可变参数的基础上,即不仅仅可以传递任意个参数,同时还可以对传递的各个参数指定参数名,可以理解为传递了一个 dict
def person(name, **kw):
print('name:', name, 'other:', kw) person('zhang', age=15, sex='M') # name: zhang other: {'sex': 'M', 'age': 15}
# 对于 dict, 如 p={'age': 15, 'sex':'M'}, 可以这样使用
person('zhang', **p)
总结一下
普通参数——必选参数
可选参数——参数有默认值,调用函数时可以传递也可以不传递,如果不传递则使用默认值
可变参数——传递数量不确定 (可以为0个) 的参数,类似传递一个 list
命名关键字参数 ——如果设置默认值,则同可选参数,否则必须传递,且传递时指定值对应的参数名
关键字参数——传递数量不确定 (可以为0) 的 键值对,类似传递一个 dict
在函数中出现的顺序必须和上面的保持一致
Python 参数使用总结的更多相关文章
- Python参数笔记
Python参数 1. 普通参数 必须要传入和定义时个数相同的参数 def miao(acfun, bilibili): print(acfun, bilibili) miao(11, 22) > ...
- Python参数基础
Python参数基础 位置参数 通过位置进行匹配,把参数值传递给函数头部的参数名称,顺序从左到右 关键字参数 调用的时候使用参数的变量名,采用name=value的形式 默认参数 为没有传 ...
- Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数
Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数 一.Python参数类型 形参:定义函数时的参数变量. 实参:调用函数时使用的参数变量. 参数传递的过程 ...
- python 参数定义库argparse
python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...
- python 参数类型理解
简介 大家都知道,在java中,函数或者方法的参数在调用时必须对其进行传参操作,也就是所谓的必选参数,也可以称为位置参数,除此之外,python还拥有其他语言不具有的一些参数类型,以下将进行一一介绍. ...
- python 参数
摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00137473844933 ...
- python 参数的组合
现在我们知道python定义函数的参数类型有:必选参数 默认参数 可变参数 关键字参数 但是在我们日常中我们是可以组合使用这些参数的:但是使用的时候,参数定义是有顺序的 定义的顺序必须是:必选参数,默 ...
- <转>Python 参数知识(变量前加星号的意义)
csdn上的牛人就是多,加油 —————————————————————————— 过量的参数 在运行时知道一个函数有什么参数,通常是不可能的.另一个情况是一个函数能操作很多对象.更有甚者,调用自身的 ...
- python参数
1.形参变量和实参 形参变量:只有在被调用时才分配内存单元,在调用结束时,即释放所分配的内存单元,因此,形参只在函数内有效,函数调用结束返回主调用函数后则不能再使用该形参变量. 实参:可以是常量,变量 ...
- python参数传递方式
原文地址:http://www.cnblogs.com/zhaopengcheng/p/5492183.html python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象 ...
随机推荐
- si4745 FM-AM-SW 音量控制芯片 驱动详解
在论坛上看到有人发这个dsp 芯片,仔细看了下,发现功能正合我意,网上能找到的资料(源码)不多 软件环境:linux4.1.36 arm-linux-gcc 4.3.2 实现功能:自动搜台,上一台, ...
- nsq 初学使用日记
win下更加直观一些,所以不使用liunx 第一步下载 nsq 下载地址 https://github.com/nsqio/nsq.git 使用git clone或者go get 下载下来 第二部 编 ...
- react-native app 屏幕适配方案(按照设计稿像素大小写就行)
import React, { Component,PropTypes } from 'react'; import { Dimensions,PixelRatio,Platform,StatusBa ...
- MySQL5.7 数据库的my.cnf配置
[client] port socket=/tmp/mysql.sock default-character-set=utf8 [mysql] no-auto-rehash default-chara ...
- mongo请求超时
no_cursor_timeout=True参数的使用 实例: import pymongo handler = pymongo.MongoClient().db.col with handler.f ...
- F版本SpringCloud1—大白话为啥要有微服务?啥是微服务?SpringCloud为什么有那么多组件?
前言 为什么要有微服务呢? 什么是微服务? SpringCloud 中为什么会有那么多的组件? ...... 作为SpringCloud教程的第一篇,不讲解具体的技术使用,通过一个通俗易懂的小故事,来 ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之五(四十一)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- elasticsearch实战(1)-单机快速部署
1. 场景描述 elasticsearch只用过,没有部署或者维护过,从头完整走一遍,记录下,原创实战,有需要的朋友参考下. 2 . 解决方案 特别说下,以前win7下安装的3台虚拟机,没有联网,因为 ...
- Python中保留两位小数的几种方法
https://blog.csdn.net/Jerry_1126/article/details/85009810 保留两位小数,并做四舍五入处理方法一: 使用字符串格式化>>> a ...
- 字节转换函数 htonl*的由来与函数定义...
字节转换字符由来: 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端, intel处理器将32位的整数分4个连续的字节,并以字节序1-2- ...