资讯专栏INFORMATION COLUMN

Python函数参数类型解释

89542767 / 192人阅读


  小编写这篇文章的主要目的,主要是给大家介绍一下关于Python函数的相关实例,主要想给大家解答,其主要的函数参数类型有什么,下面就给大家详细的进行解答下。


  1、Python的函数参数的类型


  必传参数:调用函数时必须传入的参数,函数定义时只定义参数名


  关键字参数:传入时以函数的参数名值对的方式传入


  默认参数:函数定义时为参数默认设置一个值,调用时不传输参数即以默认值处理


  不定长参数:以*修饰或者**修饰的参数;*修饰的参数是一个元组(tuple),**修饰的参数必须是字典(dict),通常写作*args或者**args


  2、Python的必传参数


  传入的参数个数必须与形参的数量一致


 #coding:utf-8
  #Author:YangXiaoPeng
  def demo01(a,b):
  print(a,type(a))
  print(b,type(b))
  #demo01(1)#TypeError missing 1 required positional argument:'b'缺少一个未知的参数,demo01必须传2个参数
  #demo01(1,2,3)#TypeError demo01()takes 2 positional arguments but 3 were given,demo01函数有2个位置参数,但是接收到了3个;
  #必传参数:调用函数时必须传入的参数,函数定义时只定义参数名
  #传入的参数个数必须与形参的数量一致
  demo01(1,2)#yes
  demo01(1,[1,2])#yes
  demo01([2,3],(1,2))#yes
  demo01(1,{2,3,4})#yes
  demo01(2,{"code":'1001',"name":"zhang","age":18})#yes

0.png

  3、关键字参数


  以参数名和参数值的关联在一起的方式进行传参,键值对的模式,参数名为键。


  #coding:utf-8
  #Author:YangXiaoPeng
  def demo01(a,b):
  print(a,type(a),end="__")
  print(b,type(b))
  #第一个关键字出入的参数位置之前的参数比逊选择关键字传参;如下面的示例中,第一个关键字传参的变量是a,a在函数定义的第二个位置,那么第二个位置之前的参数都必须以关键字传参的形式传参。
  #demo01(1,a=2)#demo01()got multiple values for argument'a'
  demo01(a=1,b=2)#yes
  demo01(1,b=2)#yes
  demo01(b=1,a=2)#yes
  demo01(b=1,a=[1,2])#yes
  demo01(b=[2,3],a=(1,2))#yes
  demo01(b=1,a={2,3,4})#yes
  demo01(b=2,a={"code":'1001',"name":"zhang","age":18})#yes

1.png

  4、默认参数


  调用函数时不传入参数an默认值处理,传入时按传入的参数值处理


  #coding:utf-8
  #Author:YangXiaoPeng
  ##默认参数
  def demo02(City="LongNan"):
  print("City是默认参数,默认值是:中国,当前值是:",City)
  #不传入参数
  demo02()
  #传入参数
  demo02("Beijing")

 2.png

     5、不定长参数


  传入的参数会生成一个元组类型的变量供函数内部使用


 #coding:utf-8
  #Author:YangXiaoPeng
  ##不定长参数
  def demo03(*args):
  print(args,type(args))
  #传入的参数会生成一个元组类型的变量供函数内部使用
  demo03(1)
  demo03("code")
  demo03(1,"code")

3.png

  传入的参数不能少于必传参数的个数


  *args后面的形参,必须以关键字参数进行传参


  #coding:utf-8
  #Author:YangXiaoPeng
  #*args后面的形参,必须以关键字参数进行传参,
  def demo04(a,b,*args,c):
  print("a传入的参数值是:{},b传入的参数值是:{},args传入的参数是:{},c出入的参数是:{}".format(a,b,args,c))
  #传入的参数不能少于必传参数的个数,a,b,c三个为必传参数
  #demo04(1,2)#TypeError
  #demo04(1,2,3)#TypeError
  demo04(1,2,c=3)

4.png

  *args之前的参数只能按位置传参,不可以关键字传参


  传入的参数个数比必传参数多时,首先给必传参数按位置赋值,然后将剩余的参数生成一个元组传递给args


  **修饰的参数必须以关键字的参数方式传参,Python解释器会将传入的关键字和关键字的值生成一个字典供函数内部使用


  #coding:utf-8
  #Author:YangXiaoPeng
  def demo05(**kwargs):
  print("kwargs传入的参数是:{}".format(kwargs),type(kwargs))
  kwargs={"code":'1002',"name":"zhang"}
  #demo05(kwargs)#TypeError
  #**修饰的参数必须以关键字的参数方式传参,Python解释器会将传入的关键字和关键字的值生成一个字典供函数内部使用
  demo05(**kwargs)#kwargs传入的参数是:{'code':'1002','name':'zhang'}<class'dict'>
  demo05(code='1002',name="zhang")#kwargs传入的参数是:{'code':'1002','name':'zhang'}<class'dict'>

 5.png

     **修饰的参数必须是最后一个


  #coding:utf-8
  #Author:YangXiaoPeng
  #**修饰的参数必须是最后一个
  """
  #SyntaxError:invalid syntax
  def demo06(a,b,*args,c,**kwargs,d):
  pass
  """
  def demo06(a,b,*args,c,**kwargs):
  print("a传入的参数值是:{},b传入的参数值是:{},args传入的参数是:{}".format(a,b,args),end='')
  print(",c传入的参数是:{},kwargs传入的参数是:{}".format(c,kwargs))
  demo06(1,2,3,4,5,c=3,code='1002',name="zhang",d=3)


  综上所述,关于Python中函数参数类型的解答,就为大家介绍到这里了,希望可以给各位读者带来帮助。


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127804.html

相关文章

  • python入门

    摘要:零预备知识字符编码计算机只能处理数字,所以为文本需要转化为数字才能被计算机处理,计算机里八个比特作为一个字节,这是数据的存储基础单位。 零、预备知识 0.1 字符编码计算机只能处理数字,所以为文本需要转化为数字才能被计算机处理,计算机里八个比特(bit)作为一个字节(byte),这是数据的存储基础单位。计算机为了处理文本,有以下三种编码方式: ASCII码:只有大小写英文字母,数字...

    xeblog 评论0 收藏0
  • Tensorflow Python API 翻译(math_ops)(第一部分)

    摘要:输出数据的第维将根据指定。输入数据必须是一个二维的矩阵,经过转置或者不转置,内部维度必须相匹配。默认情况下,该标记都是被设置为。解释这个函数的作用是将两个 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/ce4... 计划现将 tensorflow 中的 Python API 做一个学习,...

    cnTomato 评论0 收藏0
  • Tensorflow Python API 翻译(array_ops)

    摘要:解释这个函数的作用是对的维度进行重新组合。其中,表示要解压出来的的个数。如果,无法得到,那么系统将抛出异常。异常如果没有被正确指定,那么将抛出异常。向量中的值必须满足,并且其长度必须是。对于每个切片的输出,我们将第维度的前的数据进行翻转。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/00...

    xiaoqibTn 评论0 收藏0
  • Tensorflow Python API 翻译(constant_op)

    摘要:随机数张量提供了一些函数,去帮助我们构建随机数张量。该值表示正态分布的均值。一个维的,或者一个数据类型是的值,该值表示正态分布的标准偏差。解释这个函数返回一个随机数序列,数组里面的值按照均匀分布,数据范围是。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/d05... 计划现将 tens...

    godlong_X 评论0 收藏0
  • 【译】技能测试解决方案:Python中的数据科学(四)

    摘要:友情链接译技能测试解决方案中的数据科学一译技能测试解决方案中的数据科学二译技能测试解决方案中的数据科学三 本文是译文,可以转载,但需注明出处,点击这里可以获取原文,有删减。本系列博文包含四篇文章:【译】技能测试解决方案:Python中的数据科学(一)——Q1-Q15【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30【译】技能测试解决方案:Python中的数据科学(...

    sourcenode 评论0 收藏0
  • Tensorflow Python API 翻译(sparse_ops)

    摘要:数据维度是一维,表示输出密集张量的维度。解释这个函数的作用是将稀疏张量的坐标转换成密集张量中的布尔坐标。一个布尔类型的向量,向量长度是,并且其中包含个值。一个布尔类型的向量,数据长度是,如果该行填充了,那么该位置的布尔值为。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/c23... 计...

    BDEEFE 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<