Python初学者友好丨详解参数传递类型

这篇具有很好参考价值的文章主要介绍了Python初学者友好丨详解参数传递类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。

本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》,作者:frica01 。

前言

在Python编程中,函数参数起着非常重要的作用。函数参数允许我们向函数传递数据,并在函数内部使用这些值。Python提供了多种参数传递类型,包括位置参数、关键字参数、默认参数、可变数量的位置参数、可变数量的关键字参数。这些不同的参数传递方式使得函数调用更加灵活和可扩展。本文就来具体聊聊它们。

什么是Python传参

在 Python 中,传参是指在函数调用过程中将数据传递给函数的过程。传参允许我们向函数传递数据,以便在函数内部使用这些数据进行操作和处理。

在 Python 中,函数定义时使用的参数称为形式参数,也称为形参。形参是在函数定义过程中用来接收传递给函数的值的占位符。形参在函数体内被当作变量来使用,可以在函数体中进行操作和处理。

实际参数,也称为实参,是在函数调用时传递给函数的值或变量。实参是实际传递给函数的具体数值或对象。当我们调用一个函数时,需要为函数的形参提供相应的实参,这样函数才能执行相应的操作。

下面是一个简单的示例:

def demo(name):
 print("Hello, " + name + "!")
demo("Frica")

在上面的例子中,name 是函数 demo 的形参。

在函数调用时,传递了实参 Frica 给函数 demo,它被赋值给形参 name,然后函数体内部使用这个值进行打印操作。

总结起来,形参是函数定义中用于接收传递给函数的值的占位符,而实参是在函数调用时实际传递给函数的具体数值或对象。形参和实参的对应关系使得函数能够处理和操作具体的数据。

五种传参类型

传参类型可以单独使用,也可以组合使用。根据需要在函数定义中灵活地选择使用这些传参类型。

以下是Python中常见的几种传参类型:

  1. 位置参数:位置参数是最常见的参数类型,通过按照参数定义的顺序提供参数值;
  2. 关键字参数:关键字参数允许使用参数的名称来指定值,而不必按照顺序提供参数;
  3. 默认参数:默认参数允许为函数的一个或多个参数提供默认值。如果在函数调用时没有提供参数值,函数将使用默认值;
  4. 可变数量的位置参数:可变数量的位置参数允许接受任意数量的位置参数。在函数定义中,使用星号(*)来指定一个可变数量的位置参数,如果没有提供额外的位置参数,args将是一个空元组(());
  5. 可变数量的关键字参数:可变数量的关键字参数允许接受任意数量的关键字参数。在函数定义中,使用双星号(**)来指定一个可变数量的关键字参数,如果没有提供额外的关键字参数,kwargs将是一个空字典({})。

位置传参

位置参数:位置参数是最常见的参数类型。当定义一个函数时,可以指定一个或多个位置参数。在调用函数时,需要按照参数的顺序提供对应的值。例如:

def demo(name, age):
 print("Hello", name, "!")
 print("You are", age, "years old.")
demo("Frica", 25)

在上面的例子中,name 和 age 是位置参数,按照顺序分别提供 “Frica” 和 25 作为参数值。

关键字传参

关键字参数:关键字参数允许你使用参数的名称来指定值,而不必按照顺序提供参数。使用关键字参数可以使代码更加清晰和易读。例如:

def demo(name, age):
 print("Hello", name, "!")
 print("You are", age, "years old.")
demo(age=25, name="Frica")

在上面的例子中,通过使用 age=25 和 name="Frica" 来指定参数的值,而不必考虑它们的顺序。

默认传参

默认参数:默认参数允许为函数的一个或多个参数提供默认值。

如果在函数调用时没有提供参数值,函数将使用默认值。默认参数通常在函数定义中指定,并且必须要位于位置参数之后(否则会有SyntaxError异常)。例如:

def demo(name, age=18):
 print("Hello", name, "!")
 print("You are", age, "years old.")
demo("Frica") # 使用默认值18
demo("Frica01", 25) # 覆盖默认值

在上面的例子中,age 参数有一个默认值 18。如果没有为 age 提供参数值,函数将使用默认值。

可变数量的位置传参

一般我们会使用 *args,当然,使用其它的变量也可以(这里的关键是 *,而不是args。

可变数量的位置传参:可变数量的位置参数允许接受任意数量的位置参数。在可能不确定函数会接受多少个参数的情况下,可以使用可变数量的参数。在函数定义中,可以使用星号(*)来指定一个可变数量的位置参数。例如:

def print_info(*args):
 print(type(args))# 输出: <class 'tuple'>
    total = sum(num for num in args)
 return total
result = print_info(1, 2, 3, 4, 5)

print(result) # 输出:15

在上面的例子中,print_info 函数接受任意数量的位置参数,并将它们相加。

可变数量的关键字传参

一般我们会使用 **kwargs,当然,使用其它的变量也可以(这里的关键是 **,而不是kwargs。

可变数量的关键字参数传递:可变数量的关键字参数允许接受任意数量的关键字参数。在函数定义中,可以使用双星号(**)来指定一个可变数量的关键字参数。例如:

def print_info(**kwargs):
 print(type(kwargs)) # 输出: <class 'dict'>
 for key, value in kwargs.items():
 print(key, ":", value)
print_info(name="Frica", age=25, city="GuangZhou")

在上面的例子中,demo 函数接受任意数量的关键字参数,并将它们打印出来。

多种传参类型组合

def print_info(name, *args, age=18, **kwargs):
 print("Name:", name)
 print("Age:", age)
 print("Additional arguments:")
 for arg in args:
 print("-", arg)
 print("Keyword arguments:")
 for key, value in kwargs.items():
 print("-", key, ":", value)
print_info("Frica", "arg1", "arg2", age=25, city="GuangZhou", country="China")

在上面的例子中,函数print_info接受以下参数:

  • name是一个位置参数,必须提供值。
  • *args是一个可变数量的位置参数,可以接受任意数量的额外参数。
  • age是一个具有默认值的关键字参数。
  • **kwargs是一个可变数量的关键字参数,可以接受任意数量的关键字参数。

通过调用print_info函数,并提供相应的参数,可以灵活地组合使用这些参数类型。在函数体内部,可以根据需要访问和处理这些参数。

当调用print_info函数时,输出如下:

Name: Frica
Age: 25
Additional arguments:
- arg1
- arg2
Keyword arguments:
- city : GuangZhou
- country : China

这个例子展示了多种传参类型的组合,包括位置参数、可变数量的位置参数、具有默认值的关键字参数和可变数量的关键字参数。读者可以根据实际的开发需求,在函数中灵活使用这些参数类型。

函数参数类型注解

这里以位置参数为例,

def demo(name: str, age: int) -> str:
 return "Hello, " + name + "! You are " + str(age) + " years old."
print(demo("Frica", 25))# 输出: Hello, Frica! You are 25 years old.

在这个例子中,参数 name 的类型被注解为字符串类型 str,参数 age 的类型被注解为整数类型 int,返回值的类型被注解为字符串类型 str。参数类型注解可以提供类型提示,帮助开发者更好地理解函数的参数和返回值的预期类型。

当然,这里只相当于是注释,即使传入的是其它类型是数据,也不会报错!!!

总结

本文介绍了Python中函数参数的不同类型和传递方式。

  • 位置参数是最常见的参数类型,按照参数定义的顺序提供参数值。
  • 关键字参数允许使用参数名称来指定值,提高了代码的可读性。
  • 默认参数为函数的一个或多个参数提供默认值,在函数调用时可以选择性地提供参数值。
  • 可变数量的位置参数和可变数量的关键字参数允许接受任意数量的位置参数和关键字参数,提供了处理不确定数量参数的便利性。

在函数定义中,我们可以根据需要灵活地选择使用这些参数传递类型,以满足开发的需求。通过合理选择参数传递类型,可以使得函数调用更加方便、可读,并提高代码的可扩展性。

 

点击关注,第一时间了解华为云新鲜技术~文章来源地址https://www.toymoban.com/news/detail-486081.html

到了这里,关于Python初学者友好丨详解参数传递类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】初学者必读STM32时钟系统详解

    目录 1 前言 2 时钟系统介绍 3 时钟源 3.1 系统时钟源 3.2 次级时钟源 3.3 时钟源特点 4 时钟 4.1 AHB总线时钟 4.2 APB1总线时钟 4.3 APB2总线时钟 5 时钟控制器 6 CubeMx配置时钟系统 6.1 选择单片机型号 6.2 选择时钟源 6.3 配置系统时钟 6.4 时钟系统初始化代码 7 结论         STM32的时

    2024年02月08日
    浏览(37)
  • 什么是SSH协议?初学者指南详解SSH协议

    SSH又称为“安全外壳协议”(Secure Shell),是一种加密的网络传输协议,提供了一个在网络中安全地远程连接到其他计算机和设备的方法。SSH协议通过使用加密技术创建安全的隧道,保障了数据在传输过程中的安全性和完整性。 在互联网通信时代的初期,通信内容都是明文传

    2024年04月12日
    浏览(22)
  • xss-labs初学者通关详解1-18

    很久的一篇文章 有错误请指正~ 目录 xss漏洞  level1-无过滤机制 level2-闭合标签  level3-单引号闭合+添加事件  level4-双引号闭合+添加事件 level5-新建标签 ​level6-大小写绕过  level7-双写绕过 level8-编码绕过 ​level9-检测 level10-隐藏信息 ​level-11Referer信息  level-12user-agent信

    2024年02月06日
    浏览(31)
  • 【Git】git常用命令大全(初学者必看!!最强详解!!)

    目录 初学者在使用之前,需要对git有一个初步的认知 什么是git 常用命令 1、创建仓库 2、克隆远程仓库 3、查询文件状态 4、 添加文件到暂存区 5、 添加所有文件到暂存区 6、 提交暂存区文件到本地建的仓库 7、拉取远程仓库的变更 8、推送本地仓库的变更到远程仓库 9、 查看

    2024年02月10日
    浏览(28)
  • 【C语言】代码实现 扫雷 游戏及进阶功能(初学者详解)

    扫雷游戏的起源可以追溯到20世纪60年代,当时这款游戏是由IBM开发出来的。在80年代初,微软公司将其收归旗下,并将其作为Windows操作系统自带的一款游戏。自此以后,扫雷成为了Windows用户最喜欢的休闲游戏之一,也受到了全球范围内的玩家喜爱。 现在,我们使用C语言,来

    2024年01月20日
    浏览(30)
  • docker常用命令详解(图文结合纯干货,适用于初学者)

    docker最常用命令 1.docker 或 docker --help #查看docker自带的帮助信息(里面内容对初学者十分不友好) 启动类命令 systemctl start docker #启动docker systemctl stop docker #停止docker systemctl restart docker #重启docker systemctl status docker #查看docker状态 systemctl enable docker #将docker设为开机自启动 3.d

    2024年02月08日
    浏览(26)
  • Python爬虫入门(一)(适合初学者)

    关于爬虫是什么,怎样保证爬虫的合法性小编在这就不再过多的阐述,从本章起,小编将和大家一起分享在学习python爬虫中的所学,希望可以和大家一起进步,也希望各位可以关注一下我! 首先我们来初步了解下如何使用开发者工具进行抓包。以 https://fanyi.baidu.com/ 为例。在

    2024年01月24日
    浏览(46)
  • Python初学者须知(10)初识条件判断

             本系列博客主要针对的是Python初学者。Python语言简洁、强大的特性吸引了越来越多的技术人员将他们的项目转移到Python上。目前,Python已经成为计算机行业最流行的编程语言之一。笔者考虑到Python初学者的多元化(Python学习者可能是对编程感兴趣的中学生、学校

    2024年01月21日
    浏览(35)
  • Python 初学者容易踩的 5 个坑

    哈喽大家好,我是咸鱼。 今天咸鱼列出了一些大家在初学 Python 的时候容易踩的一些坑,看看你有没有中招过。 原文:https://www.bitecode.dev/p/unexpected-python-traps-for-beginners Python 在词法分析的时候会把多个字符串自动拼接起来。 这个特性可以让我们在声明一个长字符串的时候可

    2024年03月11日
    浏览(46)
  • 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    【声明】这篇文章可能写的很差,作者技术不够。但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 【首言】exe是电脑上直接点击就可以使用的。当你写了一个.py文件,可以实现你的有趣功能,于是你高兴的把这个发送给你的朋友,但是你的朋友

    2024年02月01日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包