python函数的4种参数类型

news/2024/12/22 14:19:29/

总结 python 函数中的不同参数类型的使用方法。

在调用函数时,通常会传递参数,函数内部的代码保持不变,针对 不同的参数 处理 不同的数据

有位置传参、关键字传参、默认值参数、多值参数等。

1、参数传递

形参和实参:

  • 形参定义 函数时的 参数变量
  • 实参调用 函数时,使用的参数变量

参数传递的过程,就是 把实参的引用 传递给 形参 ,使用实参的值来执行函数体的过程。

Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的

2、位置实参

按照参数位置,依次传递参数,这是最普通的方式。

def location(a, b)print(a + b)location(3, 9)
"调用函数时,按顺序传递参数,3 传给 a,9 传给 b"

3、关键字实参

如果不想严格按照顺序传递参数,也可以按关键字传递。

def location(a, b)print(a + b)location(b = 3, a = 9)
"调用函数时,按关键字传递参数,3 传给 b,9 传给 a"

4、缺省参数

定义函数时,可以给 某个参数 赋值一个默认值,具有默认值的参数就叫做 缺省参数

  • 调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用 参数默认值
  • 将常见的值设置为参数的缺省值,从而 简化函数的调用
    • 要使用 最常见的值 作为默认值
    • 如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!

例如:对列表排序的方法

gl_num_list = [6, 3, 9]"默认就是升序排序,因为这种应用需求更多"
gl_num_list.sort()
print(gl_num_list)"只有当需要降序排序时,才需要传递 'reverse' 参数"
gl_num_list.sort(reverse=True)
print(gl_num_list)

缺省参数的定义位置:

  • 必须保证带有默认值的缺省参数在参数列表末尾!

调用带有多个缺省参数的函数:

  • 调用函数时,如果有 多个缺省参数需要指定参数名,这样解释器才能够知道参数的对应关系!
def print_info(name, title="", gender=True):gender_text = "男生"if not gender:gender_text = "女生"print("%s%s 是 %s" % (title, name, gender_text))# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王", title="班长")
print_info("小美", gender=False)

5、多值参数

当函数需要处理的参数个数不确定时,可使用 多值参数

python 中有两种多值参数:

  • 接收 元组:参数名前加 一个 *
  • 接收 字典:参数名前加 两个 *

一般在给多值参数命名时,习惯使用以下两个名字

  • *args — 存放 元组 参数
  • **kwargs — 存放 字典 参数,(kwkeywordkwargs键值对参数
def demo(num, *args, **kwargs):print(num)print(args)print(kwargs)demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)输出:
1
(2, 3, 4, 5)
{'name': '小明', 'age': 18, 'gender': True}

拆包

在上面多值参数传递时,实际上使用了拆包功能。

拆包主要用于元组和字典参数的传递。

在调用带有多值参数的函数时,使用拆包简化参数的传递:

  • 直接将一个 元组变量 实参传递给元组形参 args
    • 元组变量前,加 *
  • 直接将一个 字典变量 实参传递给字典形参 kwargs
    • 字典变量前,加 **
def demo(*args, **kwargs):print(args)print(kwargs)gl_nums = (1, 2, 3)
gl_xiaoming = {"name": "小明", "age": 18}"变量名前必须要加 * 号,否则不能无法正常拆包""错误演示(不加 * 号):"
demo(gl_nums, gl_xiaoming)
输出:
((1, 2, 3), {'name': '小明', 'age': 18})
{}"正确演示(加 * 号):"
demo(*gl_nums, **gl_xiaoming)
输出:
(1, 2, 3)
{'name': '小明', 'age': 18}

http://www.ppmy.cn/news/517447.html

相关文章

Python 函数的4种参数

Python的函数参数有4种: 必选参数:函数调用时必须赋值的参数默认参数:函数定义时,赋予默认值的参数,位于必选参数之后。如def test(param,default3),default为默认参数,函数调用时,如果没有给d…

华为webview打不开页面【型号:HUAWEI 麦芒4 】

问题描述:webview打开一个页面后再打开第二个页面,首次可以打开,接下来所有webview界面都打不开 问题解决:是系统webview的问题,到华为应用市场搜索webview安装即可,手机华为市场可能找不到,到电…

android 手机安装windows7,手机怎么安装win7系统 安卓手机装win7系统教程

现在少了什么都能少了手机,通信,社交,购物,查资料,手机功能越来越强大,大家都随身携带。但是手机也是有限制的,我们办公的时候还是会使用电脑。不过有些小伙伴也想享受一下手机当电脑用的感觉&a…

vivo7.0系统怎么无root激活XPOSED框架的教程

在异常多企业的引流,或业务操作中,理论上需要使用安卓的黑技术XPOSED框架,几天前,我们企业采购了一批新的vivo7.0系统,理论上都是基于7.0以上版本,理论上不能够获取root权限,虽说有一些能但比较…

vivo7.0系统手机最完美激活Xposed框架的教程

对于喜欢研究手机的机友而言,常常会玩到XPOSED框架及其各类功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活XPOSED框架是异常简易的,但随着系统版本的更新,5.0以后的系统&#xf…

android 桌面操作系统,Android主题美化: Win7桌面完成版Android Seven Pro V2

您是否只是不习惯使用Android平板电脑来操作桌面,还是对Android随附的桌面感到厌倦,是否想要更改为其他Android主题?今天的平板电脑包装盒为您带来了一个Android桌面美化软件,该软件将Android主题修改为Windows7: Android Seven P…

kvm安装Windows7旗舰版

前言: kvm通常是现在的云平台的底层架构,因此,kvm是需要好好学习的。那么,如何在vm的Linux虚拟机里练习安装kvm虚拟机呢(这里,可能很多同学有点疑惑了,简单来说,就是在vm里安装的虚…

飞智黑武士X9 ET PRO完美改装震动及背光

自从去年底入手et pro后感觉一切良好, 一段时间使用后真心觉得这个手机电脑电视都能用的手柄堪称完美, 唯一美中不足的便是缺少加强游戏手感的震动功能, 在度娘连续搜寻许久看到某大神X9改装震动的帖子, 于是决定动手改装&…