返回顶部
首页 > 资讯 > 后端开发 > Python >python的函数参数你了解吗
  • 669
分享到

python的函数参数你了解吗

2024-04-02 19:04:59 669人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言位置传参关键字传参默认参数不定长参数混合使用问题创建时引用时总结前言 python参数类型和参数传递形式多样,相对于其他语言Python使用会更加灵活。它传参形式一般分为两种

前言

python参数类型和参数传递形式多样,相对于其他语言Python使用会更加灵活。它传参形式一般分为两种:位置传参,关键字传参。传参形式是相对于实参而言,在函数调用时使用参数类型一般也分为两种:默认参数,不定长参数。参数类型是相对形参而言,在函数创建时定义。

位置传参

位置传参,我们经常使用的一种函数传参形式,它根据实参的位置传递给对应位置的形式参数。在与其他传参形式混合使用时,必须优先输入位置参数。

def func(a, b, c):
    print(a, b, c)
 
 
# 位置参数
if __name__ == '__main__':
    func(1, 6, 7)  # 打印结果是1 6 7  位置一一对应
    func(6, 1, 7)  # 打印结果是6 1 7
    # func(6, 1)  # 实参与形参数量必须一致 
    # func(6, 1, 7, 9)  # 不能多也不能少

关键字传参

关键字传参,根据形式参数的名字来进行对应的赋值。

def func(a, b, c):
    print(a, b, c)
 
 
# 关键字参数
if __name__ == '__main__':
    func(1, b=6, c=7)  # 打印结果是1 6 7
    func(c=3, b=1, a=7)  # 打印结果是7 1 3
    # func(c=2, b=3)  # 不能少赋值
    # func(c=2, b=3,a=6,c=5)  # 不能多赋值
    # func(c=2, b=3,a=5,qq=3) # 也不能无关赋值
    # func(1, b=6, 7)  # 与位置传参混合使用时,必须位置参数在前,而且不能交替使用 

默认参数

默认参数,就是形参会有个默认值,如果有新值传入就使用新值,否则使用默认值。形参使用默认参数时同样需要注意位置,必须写在位置参数后面(其实不能叫位置参数,但是为了理解就把没有赋值的普通形参叫做位置参数),否则会报错。如下方ab必须写在c后面。

# 默认参数必须要写在右侧
def func(a, b=5, c=3):
    print(a, b, c)
 
 
# 默认参数
if __name__ == '__main__':
    func(1)  # 打印的结果是 1 5 3
    func(1, 6)  # 打印的结果是 1 6 3
    func(1, 2, 7)  # 打印结果是1 2 7
    func(b=1, a=4)  # 打印结果是4 1 3

不定长参数

不定长参数有两种表现形式。

  • 在形参前面加个*(*args),表示不定长元组形参,可以接收所有通过位置传参进来的实参,将其存入元组里面。
  • 在形参前面加两个*(**kwargs),表示不定长字典形参,可以接收所有通过关键字传参进来的实参,将其存入字典里面。
# 不定长参数
def func(*args, **kwargs):
    print(args)
    print(kwargs)
 
 
if __name__ == '__main__':
    func(1, 4, 8, 7, a=5, h=6, l=15)  # 注意实参形参顺序要对应

结果

(1, 4, 8, 7)  # 元组
{'a': 5, 'h': 6, 'l': 15}  # 字典

混合使用问题

创建时

def func1(a, b=5, *args, c=7, **kwargs):
    print(a, b, args, c, kwargs)

我们先给它们一个称呼方便引用。就称a为普通参数,b为默认参数,*args为可变参数(因为它能接收多个实参),**kwargs为可变关键字参数(因为它能接收多个通过关键字传参进来的实参)。

  • 普通参数必须写在最前面(写在其他类型参数前面)
  • 可变关键字参数必须写在最后面(写在其他参数类型后面)
  • 可变参数与可变关键字参数只能出现一次。

引用时

位置传参必须写在关键字参数前面,他们俩不能交替使用。关键字传参什么时候出现合适?出现在可变参数之后,相当于终止条件。

def func1(a, b=5, *args, c=7, **kwargs):
    print(a, b, args, c, kwargs, sep='\n')
 
 
if __name__ == '__main__':
    func1(5, 6, 8, 7, 1, 5, 6, 8, c=4, r=2, s=3)

 结果为

5
6
(8, 7, 1, 5, 6, 8)
4
{'r': 2, 's': 3}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!   

--结束END--

本文标题: python的函数参数你了解吗

本文链接: https://lsjlt.com/news/164052.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python的函数参数你了解吗
    目录前言位置传参关键字传参默认参数不定长参数混合使用问题创建时引用时总结前言 python参数类型和参数传递形式多样,相对于其他语言python使用会更加灵活。它传参形式一般分为两种...
    99+
    2024-04-02
  • python的函数形参和返回值你了解吗
    目录函数的返回值函数的参数不可变参数和可变参数+=函数的参数缺省参数多值参数元组和字典的拆包总结函数的返回值 一个函数执行后可以返回多个返回值 def measure(): ...
    99+
    2024-04-02
  • 深入了解python的函数参数
    目录位置参数默认参数关键字参数多值参数:总结 位置参数 这是一个求等差数列和的函数,使用必需要传入一个参数n,这就是位置参数 def sum(n): sum=0 ...
    99+
    2024-04-02
  • Python Spring 函数同步:你真的了解它吗?
    在Python中,函数同步是常见的问题,尤其是在多线程或者多进程的情况下。Python提供了一些解决方案,其中之一就是使用Spring函数同步。本文将介绍Spring函数同步的基本概念和使用方法。 什么是Spring函数同步? Sprin...
    99+
    2023-06-22
    spring 函数 同步
  • C++的内联函数你了解吗
    目录1.概念2.函数演示3.函数特性总结1.概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。...
    99+
    2024-04-02
  • Python中函数的创建与调用你了解吗
    目录创建函数调用函数函数的参数形参和实参 传递参数位置参数默认参数函数的返回值案例:计算任意两个数字的和模块基础定义模块基本概念导入模块 (import)模块加载 (loa...
    99+
    2024-04-02
  • Python 分布式实时函数,你真的了解吗?
    随着互联网的发展,数据量越来越庞大,单机计算已经难以满足需求。因此,分布式计算应运而生。而在分布式计算中,实时计算也是一种非常重要的方式。Python 作为一种高级编程语言,其在分布式实时计算中也有着广泛的应用。本文将介绍 Python ...
    99+
    2023-06-02
    分布式 实时 函数
  • C语言的abs()函数和div()函数你了解吗
    C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数。今天就来看一下C语言标准库函数里面的整型函数。 int __cdecl abs(int ...
    99+
    2024-04-02
  • C++inline函数的特性你了解吗
    目录一.inline的作用(内联函数)二.inline的实现(注意debug模式下内联函数不会展开)三.使用inline的注意事项四.inline和预处理的区别总结一.inline的...
    99+
    2024-04-02
  • TypeScript中的函数和类你了解吗
    目录函数作为参数定义函数函数参数的类型可选类型参数默认值剩余参数this的默认推导函数重载类初始化继承多态成员修饰符总结函数 以下声明了一个函数类型,通过type来定义类型别名,vo...
    99+
    2024-04-02
  • C语言的strcpy函数你了解吗
    目录strcpy函数原型参数讲解返回值详解函数详解第二个注意点:目标空间必须足够大,以确保能存放源字符串第三个注意点:目标空间必须可变总结strcpy 拷贝字符串到目标地址 函数原...
    99+
    2024-04-02
  • Python 中的单分派泛函数你真的了解吗
    泛型,如果你学过Java ,应该对它不陌生吧。但你可能不知道在 Python 中(3.4+ ),也可以实现简单的泛型函数。 在Python中只能实现基于单个(第一个)参数的数据类型来...
    99+
    2024-04-02
  • C++中的函数你真的理解了吗
    目录1 概述2 函数的定义及调用3 值传递4 函数的常见形式5 函数的声明6 函数的分文件编写作用:让代码结构更加清晰1.2.3.4.总结1 概述 作用:将一段经常使用的代码进行封装...
    99+
    2024-04-02
  • ASP和JavaScript:你真的了解函数和数组吗?
    函数和数组是编程中非常重要的概念,无论是ASP还是JavaScript都离不开它们。本文将详细讲解函数和数组的基本概念及其在ASP和JavaScript中的应用。 一、函数 函数是一段可重用的代码,可以接受输入参数并返回值。在编程中,函数...
    99+
    2023-11-13
    javascript 函数 数组
  • C++中类的转换函数你了解吗
    只有接受一个参数(其他参数有默认值的也算)的构造函数才能作为转换构造函数。 在C++中,接受一个参数的构造函数为将类型与该参数相同的值转换为类提供了蓝图。因此,下面的构造函数用于将d...
    99+
    2024-04-02
  • C++的拷贝构造函数你了解吗
    目录一般情况下的拷贝构造函数:默认拷贝构造函数:浅拷贝和深拷贝:总结拷贝构造函数用以将一个类的对象拷贝给同一个类的另一个对象,比如之前学习过的string类: string s1; ...
    99+
    2024-04-02
  • C++的多态与虚函数你了解吗
    目录多态性虚函数总结多态性 多态性是面向对象程序设计的关键技术之一,若程序设计语言不支持多态性,不能称为面向对象的语言,利用多态性技术,可以调用同一个函数名的函数,实现完全不同的功能...
    99+
    2024-04-02
  • PHP 数组面试:你真的了解这些函数吗?
    PHP 是一种常用的服务器端编程语言,而数组则是 PHP 中最常用的数据结构之一。在 PHP 面试中,经常会涉及到数组相关的问题。因此,今天我们来探讨一下 PHP 数组的一些常用函数,以及它们的用法和作用。 array() 函数 ar...
    99+
    2023-06-18
    数组 面试 函数
  • NumPy 函数在 Python 开发技术中的应用,你了解吗?
    Python 是一种流行的编程语言,因其简洁易学、易读易写、开放源代码、可移植性强等特点而备受开发者青睐。而 NumPy 是 Python 中一个重要的科学计算库,包含了多种数值计算、数组处理和矩阵计算等功能,可以帮助开发者快速高效地完成...
    99+
    2023-06-03
    开发技术 numy 函数
  • C++的多态和虚函数你真的了解吗
    目录一、C++的面试常考点二、阿里真题2.1 真题一(1)虚函数表vtbl(2)构造一个派生类对象的过程(3)析构一个派生类对象的过程2.2 真题二2.3 真题三2.4 真题四2.5...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作