总结Python函数参数的六种类型

 更新时间:2022年03月08日 10:50:56   作者:python老鸟  
这篇文章主要总结了Python函数参数的六种类型,传递参数实现不同场景的灵活使用,下面总结的六种函数参数类型,需要的小伙伴可以参考一下

前言:

Python函数之所以很好用,还有一点就的能传递参数实现不同场景的灵活使用,对于函数参数的类型小编总结了6种不同的形式。下面来一一学习下。

首先来一个问题:使用一个函数来打印3*2,3*3,3*4的结果。

正常情况下大家可能直接封装一个函数,在函数体内来完成这三个数的乘法,如下:

def p_num():
    print(3 * 2)
    print(3 * 3)
    print(3 * 4)
 
p_num()

返回结果:

6
9
12

上面的结果实现了题目要求,这时候如果再来一个问题:用一个函数输出5*2,5*3,5*4的结果。

这时候你就会发现,你必须再封装一个函数来实现这样的效果,但是很多同学会发现,这个效果和我们上面的效果很相似。有的同学就会想到,第一题函数中的3我们可不可以用一个变量来代替,恭喜你,python也是这样想的,所以就引入参数这个概念,我们来看看python是怎么实现的吧。

一、函数的单参数传递

def p_num(n):  # 设置一个形参n
    print(n * 2)
    print(n * 3)
    print(n * 4)
 
p_num(5)  # 传递实参为5

上面函数中的n就是形参,你也可以把它理解为一个变量名,调用函数的时候小括号中要传入实参,你可以把他理解为给上面形参(变量)赋的值。这样你给n赋什么值,那函数体内参与运算的就是什么值,这样一来我们就能实现不同的数字实现上面的相同的方法了,一个函数搞定。

二、多参数传递

换种情况,如果我们想得到两个数字相乘和相减的值,而且在不同的场景中这两个数会随时变化,那又怎么实现呢?估计有同学已经想到了,只要把上面的函数中一个形参变成两个就可以了,是的,就是这样的。

下面来演示一下:

def test():
    print(5 * 3)
    print(5 - 3)
test()
# 1.固定参数def test(m, n):
    print(m * n)
    print(m - n)
test(5, 3)
test(985, 211)

三、关键字参数

通过一个函数把一个字符串反复输出n次,注意这里的n代表未知次数,字符串也是未知字符串,我们从这个题目就可以看出来,一定属于一个多参数函数。那么很简单就实现了,

如下:

def test(num, str):
    print(str * num)
test('www.wakey.com.cn', 5)

这时候大家可以看到输出的结果也是正确的,但是我们本身是想把num=5,str='www.wakey.com.cn',而函数里面的参数是按照顺序穿进去的,所以虽然结果没有问题,但是在有些场景中会出现不必要的错误,比如,我们要对字符串str进行处理后再计算,就不行了,这时候,python引入关键字参数来指定形参和实参的关系。

def test(num, str):
    print(str * num)
test(str='www.wakey.com.cn', num=5)

四、缺省参数

这时候出现另一种场景,就是上面的字符串在大多数情况下都是www.wakey.com.cn,偶尔会出现其他字符串的情况,如果使用上面关键字参数的话,每次都要输入一下固定值,这样写起来比较麻烦,所以看看缺省参数是怎么解决这个问题的。

def test(num, str='www.wakey.com.cn'):
    print(str * num)
test(num=5)
test(num=5, str='www')

这里的缺省参数也可以说成默认值参数,就是不传递参数的时候用自己的默认值,传递参数的时候使用传递进去的实参。

五、不定长参数 - 元组

如果一个函数不知道未来要接收多少个参数的时候可以使用一个元组来接受不定长参数,

下面来直接实现效果:

def test(*m):  # 这里加了一个*号,当成元组的形式来接受参数,一般写成:*args
    print(m)  # 注意这里的形参不能带*号
    print(type(m))
test((3, 5, 7))
test(3, 5, 7)

注意这里两个调用的结果都是元组,但是结果不太一样,

看看返回结果:

((3, 5, 7),)
<class 'tuple'>
(3, 5, 7)
<class 'tuple'>

六、不定长参数 - 字典

还有一种情况就是每个参数都用自己的含义,但是不是固定参数,这里可以借用字典的键值对特性来实现。

def test(**m):  # 这里加了2个*号,当成字典的形式接受参数,一般写成:**kwargs
    print(m)
    print(type(m))
    # print(**m)  # 这里不能加**
test(a=3, b=5, c=7)

返回结果:

{'a': 3, 'b': 5, 'c': 7}
<class 'dict'>

上面两种不定长参数可以放在一起使用,表示可以接受任意参数,下面不给大家举例的,我们看看文档,很多内建方法都使用这样的写法。

def pow(*args, **kwargs): # real signature unknown
    """
    Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments 
    Some types, such as ints, are able to use a more efficient algorithm when
    invoked using the three argument form.
    """
    pass

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

相关文章

  • python实现邮件发送功能

    python实现邮件发送功能

    这篇文章主要为大家详细介绍了python实现邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • python自动化操作之动态验证码、滑动验证码的降噪和识别

    python自动化操作之动态验证码、滑动验证码的降噪和识别

    很多网站登录都需要输入验证码,如果要实现自动登录就不可避免的要识别验证码,下面这篇文章主要给大家介绍了关于python自动化操作之动态验证码、滑动验证码的降噪和识别,需要的朋友可以参考下
    2021-08-08
  • PyCharm添加python库的方法步骤

    PyCharm添加python库的方法步骤

    在使用PyCharm过程中,有时候需要添加需要的Python扩展库,本文主要介绍了PyCharm添加python库的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 三个520专属Python表白代码分享

    三个520专属Python表白代码分享

    快到520了,这篇文章主要为大家介绍了三个520专属Python表白代码。文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编一起动手试一试
    2022-05-05
  • 学Python 3的理由和必要性

    学Python 3的理由和必要性

    在本篇文章里小编给大家整理的是关于学Python 3的理由的优势,有兴趣的朋友们跟着学习参考下。
    2019-11-11
  • Python实现mysql数据库更新表数据接口的功能

    Python实现mysql数据库更新表数据接口的功能

    这篇文章主要给大家介绍了关于Python如何实现mysql数据库更新表数据接口功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • python抓取网页内容示例分享

    python抓取网页内容示例分享

    这篇文章主要介绍了python抓取网页内容示例,在抓取的时候对于gbk编码网页还需要转化一下,具体看下面的示例吧
    2014-02-02
  • Python基于Pytorch的特征图提取实例

    Python基于Pytorch的特征图提取实例

    在利用深度学习进行分类时,有时需要对中间的特征图进行提取操作,下面这篇文章主要给大家介绍了关于Python基于Pytorch的特征图提取的相关资料,需要的朋友可以参考下
    2022-03-03
  • python调用虹软2.0第三版的具体使用

    python调用虹软2.0第三版的具体使用

    这篇文章主要介绍了python调用虹软2.0第三版的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Python pyecharts实时画图自定义可视化经纬度热力图

    Python pyecharts实时画图自定义可视化经纬度热力图

    这篇文章主要为大家介绍了Python pyecharts实时画图自定义经纬度热力图实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论