关于Python中函数的几种形参

 更新时间:2023年08月16日 10:34:59   作者:人气小姜  
这篇文章主要介绍了关于Python中函数的几种形参,python中函数是非常重要的一个知识点,想要把函数学习好,就必须要把函数的参数学习好,这样才能够进行很好的传递参数,发挥出应有的作用,需要的朋友可以参考下

Python函数形参

函数的参数分类:

  • 形式参数和实际参数
  • 关键字参数
  • 可变类型参数和不可变类型参数
  • 位置参数
  • 可变长度参数
  • 默认值参数

位置参数

必须按照准确顺序将函数调用中的实参传递给函数定义中相应的形参。

def user(name, age):
	print("{} is {} years old".format(name,age)) # format()方法是寻找字符串中{}标识,然后把参数依次赋值给字符串中
user("Tom", 10)
user(10, "Tom")
# 输出
Tom is 10 years old
10 is Tom years old

关键字参数

仅针对函数的调用,通过"参数名=参数值"的方式,可以直接在实参中将名称和值关联起来。这样就不需要根据形参名字来区分参数了,即使不按照顺序,解释器也可以通过给出的关键字来匹配参数的值。

1:单个关键字参数

def user(name, age):
	print("{} is {} years old".format(name, age))
user("Tom", 10)
user(age=10, name="Tom") # 即使实参的位置不是按照形参位置,也能匹配到相对应参数的值。
# 输出:
Tom is 10 years old
Tom is 10 years old

2:可变长度关键字参数,即字典参数。可以传递多个关键字参数

  • 如何使用:在定义函数的形参中,使用带有两个星号的形参,此时在调用函数时就可以传递多个关键字参数,这些关键字参数都会传递给带有两个星号的形参中
  • 使用场景:在预先不知道传递给函数的会是什么信息的情况下
def users(f_name, l_name, **user_info):
	print("first name: " + f_name)
	print("last name: " + l_name)
	for arg_name, arg_value in user_info.items():
		print("{}:{}".format(arg_name, arg_value))
users("tom", "leaf", location="here", height=150, length=80 )
# 输出
first name: tom
last name: leaf
location:here
height:150
length:80

默认参数

编写函数时形参指定了默认值的参数,在调用函数中给形参提供了实参时,优先使用调用函数时提供的实参,如果调用函数时没有提供实参值,使用函数定义中的默认值

Tip:关键字参数必须放在所有位置参数的右边。如果放在左边,调用函数时传递的实参会默认从左往右进行关联,很有可能用户这个实参是传递给位置参数的,但是却被左边的关键字参数拦截接收,那么关键字参数右边的位置参数就没有实参传递。此时就会报错。

def user(name, age=12):
	print("{} is {} years old".format(name, age))
user("Tom", 10) # age参数传递了实参值,那么优先使用传递的实参值
user("Tom")
user(name="Tom")
user(age=10, name="Tom") # 两个参数都是关键字参数,那么参数位置颠倒也可以正确匹配到
# 输出:
Tom is 10 years old
Tom is 12 years old
Tom is 12 years old
Tom is 10 years old

非关键字可变长参数(元组)

  • 如何使用:在定义函数的形参中,使用带有一个星号的形参,此时在调用函数时就可以传递多个参数,这些参数都会被封装到一个元组中,传递给函数定义中这个带有一个星号的形参
  • 使用场景:在预先不知道传递给函数的会是什么信息的情况下
def users(*names):
	print(str(names))
	for name in names:
		print(name)
users("tech")
users("tom", "test", "amy")
# 输出
tech
tach
('tom','tets','amy')
tom
test
amy

Tip:如果要让函数接受不同类型的实参,就必须在函数定义中将接纳任意数量实参的形参放在最后,这样Python会先匹配位置实参和关键字实参,最后再将余下的实参都收集到最后一个元组实参中。

到此这篇关于关于Python中函数的几种形参的文章就介绍到这了,更多相关Python函数形参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用pandas读xlsx文件的实现

    python使用pandas读xlsx文件的实现

    这篇文章主要介绍了python使用pandas读xlsx文件的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python Flask 和 Django 的区别与适用场景示例分析

    Python Flask 和 Django 的区别与适用场景示例分析

    Flask和Django是两个流行的Python Web框架,但设计哲学、功能和用法有很大区别,Flask是一个轻量级框架,简单灵活,适合小型项目和快速原型开发,本文给大家介绍Python Flask 和 Django 的区别与适用场景示例分析,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Python初学者必备的文件读写指南

    Python初学者必备的文件读写指南

    今天给大家带来的是关于Python基础的相关知识,文章围绕着Python文件读写展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 卷积神经网络如何实现提取特征

    卷积神经网络如何实现提取特征

    这篇文章主要介绍了卷积神经网络如何实现提取特征问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • python 字典(dict)按键和值排序

    python 字典(dict)按键和值排序

    下面小编就为大家带来一篇python 字典(dict)按键和值排序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 使用python实现md5加密

    使用python实现md5加密

    这篇文章主要介绍了使用python实现md5加密,md5为计算机安全领域广泛使用的一种散列函数,用于确保信息传输完整一致,需要的朋友可以参考下
    2023-04-04
  • python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    setproctitle 是一个 Python 模块,用于设置进程标题(process title),通过设置进程标题,可以让进程在系统级的进程管理工具中展示自定义的名称,方便用户查看和管理进程,本文介绍python3 设置多进程名称并在ps命令中可见,感兴趣的朋友一起看看吧
    2024-03-03
  • 使用Python+selenium实现第一个自动化测试脚本

    使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • PyQt5实现简易电子词典

    PyQt5实现简易电子词典

    这篇文章主要为大家详细介绍了PyQt5实现简易电子词典,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • python函数定义和调用过程详解

    python函数定义和调用过程详解

    这篇文章主要介绍了python函数定义和调用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论