作者:小小程序员
链接:https://zhuanlan.zhihu.com/p/89538123
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在调用函数时,通常会传递参数,函数内部的代码保持不变,针对 不同的参数处理不同的数据
有位置传参、关键字传参、默认值参数、多值参数等。
1、参数传递形参和实参:

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

参数传递的过程,就是 把实参的引用 传递给 形参 ,使用实参的值来执行函数体的过程。
Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的
2、位置实参
按照参数位置,依次传递参数,这是最普通的方式。

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

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

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

例如:对列表排序的方法

缺省参数的定义位置:

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

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

  • 调用函数时,如果有 多个缺省参数需要指定参数名,这样解释器才能够知道参数的对应关系!

5、多值参数
当函数需要处理的参数个数不确定时,可使用 多值参数python 中有两种多值参数:

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

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

  • *args — 存放 元组 参数
  • **kwargs — 存放 字典 参数,(kwkeywordkwargs键值对参数

拆包
在上面多值参数传递时,实际上使用了拆包功能。
拆包主要用于元组和字典参数的传递。
在调用带有多值参数的函数时,使用拆包简化参数的传递:

  • 直接将一个 元组变量 实参传递给元组形参 args

    • 元组变量前,加 *
  • 直接将一个 字典变量 实参传递给字典形参 kwargs

    • 字典变量前,加 **

python调用函数_Python 函数中的 4 种参数类型相关推荐

  1. 函数传参字典_Python 函数中的 4 种参数类型

    作者:小小程序员 链接:https://zhuanlan.zhihu.com/p/89538123 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在调用函数时,通常 ...

  2. python函数参数定义_python函数定义中的5种参数

    python函数参数定义 Python函数定义中的5种参数类型: (5 Types of Arguments in Python Function Definition:) default argum ...

  3. python调用带参函数_Python | 带有示例的函数调用类型

    python调用带参函数 There are following types of function calls in python: python中有以下类型的函数调用: Call by value ...

  4. python 不执行函数_解决python调用自己文件函数/执行函数找不到包问题

    写python程序的时候很多人习惯创建一个utils.py文件,存放一些经常使用的函数,方便其他文件调用,同时也更好的管理一些通用函数,方便今后使用.或是两个文件之间的class或是函数调用情况. 就 ...

  5. python函数支持哪些参数类型_Python函数的几种参数类型

    以下代码均以Python3为基础理解. 初识Python函数 大部分常见的语言如C.Java.PHP.C#.JavaScript等属于C系语言,Python不属于他们中的一员(ruby亦然).在这些语 ...

  6. python调用c语言函数_从Python调用C函数

    python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...

  7. python调用c语言内核计算,在Linux上实现Python调用C语言函数

    一般思路 Python中内置ctypes库,需调用c编译成的.so文件来实现函数调用. 假设我们所需调用的c文件名为test.c,文件里有我们需要的函数func(x,y). 将.c文件编译成 .so文 ...

  8. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  9. JAVA中的八种基本类型

    一.JAVA中的八种基本类型 1.数字类型(6种)   ①byte:     占的位数:byte数据类型占八位: 最小值为:-128(-2^7): 最大值为:127(2^7-1): 默认值为:0: 作 ...

最新文章

  1. java property异常_Java常见的异常和解决的办法
  2. Python学习笔记一简介及安装配置
  3. Spring对事务管理的支持的发展历程--转
  4. mysql主键创建非聚集索引_什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推...
  5. VIJOS 1052贾老二算算术 (高斯消元)
  6. .NET Framework总结二
  7. HDC2020开发者大会鸿蒙,鸿蒙2.0来了!华为开发者大会HDC 2020宣布
  8. 自适应对比度增强(ACE)算法原理及实现
  9. 广度优先搜索(啊哈算法)
  10. WY-2000B空气质量检测系统
  11. 计算机文件夹操作教案,文件文件和文件夹教案
  12. java环境变量配置 JDK环境变量
  13. 瞬息万变的技术圈与焦虑的技术人,进阶Android需要掌握的那几个关键技术!
  14. PostWoman(网页调试工具)
  15. 零知识证明的几个例子
  16. 【无标题】Deep AVPpred:人工智能驱动的病毒感染多肽药物的发现
  17. ubuntu20.4安装ROS2 Noetic Ninjem
  18. IE不能打开网页的原因及解决办法
  19. 多传感器数据融合技术如何应用在自动驾驶领域?
  20. Odoo10邮件收信发信配置2

热门文章

  1. 奖金福利高达20亿,华为太太太太太任性了!
  2. 图解 ElasticSearch 原理,太牛了
  3. 漫画:7种编程语言的学习曲线
  4. jeecgboot logback-spring.xml配置不生成新日志文件
  5. jboss7.1.安装配置
  6. SecureCRT上传bash: rz: command not found
  7. 华为云TaurusDB性能挑战赛-java赛题mvn编译时报错:不支持 diamond 运算符
  8. C++中面向对象的理解
  9. MATLAB GPU加速
  10. C++ 基于 Visual C++6.0 的 DLL 编程实现