关于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的else子句使用指南

    python的else子句使用指南

    本文讨论Python的for…else和while…else语法,这是Python中最不常用、最为误解的语法特性之一
    2016-02-02
  • python时间日期操作方法实例小结

    python时间日期操作方法实例小结

    这篇文章主要介绍了python时间日期操作方法,结合实例形式总结分析了Python针对日期时间的转换、计算相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • 使用python+pygame实现中秋节动画效果

    使用python+pygame实现中秋节动画效果

    马上就要中秋节了,使用python可以实现中秋节动画效果,包括月亮、兔子和烟花吗?当然是可以的,那该如何实现呢?这篇文章我们主要使用pygame来实现,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-09-09
  • Python实现定时自动关闭的tkinter窗口方法

    Python实现定时自动关闭的tkinter窗口方法

    今天小编就为大家分享一篇Python实现定时自动关闭的tkinter窗口方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python实现调用达梦数据库的教程分享

    Python实现调用达梦数据库的教程分享

    这篇文章主要为大家详细介绍了Python是如何调用达梦数据库的,文中的示例代码简洁易懂,具有一定的学习和参考价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • python动态进度条的实现代码

    python动态进度条的实现代码

    有时候我们需要使用print打印工作进度,正常使用print函数会导致刷屏的现象,本文通过实例代码给大家介绍python动态进度条的实现方法,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • Python queue双端队列模块及用法小结

    Python queue双端队列模块及用法小结

    双端队列是一种具有队列和栈性质的线性数据结构,本文主要介绍了Python queue双端队列模块及用法小结,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 使用Python设计一个代码统计工具

    使用Python设计一个代码统计工具

    这篇文章主要介绍了使用Python设计一个代码统计工具的相关资料,包括文件个数,代码行数,注释行数,空行行数。感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-04-04
  • Python filter过滤器原理及实例应用

    Python filter过滤器原理及实例应用

    这篇文章主要介绍了Python filter过滤器原理及实例应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 使用python提取PowerPoint中的音频和视频

    使用python提取PowerPoint中的音频和视频

    将多种格式的媒体内容进行重新利用(如PowerPoint演示中的音频和视频)是非常有价值的,从演示文稿中提取这些媒体文件可以为多媒体内容的多次使用提供更大的灵活性,本文将演示如何使用Python从PowerPoint演示文稿中提取音频和视频,需要的朋友可以参考下
    2024-09-09

最新评论