当前位置:   article > 正文

Python函数中参数前带*是什么意思?_pytorch 函数参数加*什么意思

pytorch 函数参数加*什么意思

背景

前几天看了些python的代码,发现有些函数的参数前带有(*)号,有的甚至有两个(*)号,它们代表什么意思的?

解释

查阅资料后发现,参数前面加上*号 ,意味着参数的个数不止一个,另外带一个星号(*)参数的函数传入的参数存储为一个元组(tuple),带两个(*)号则是表示字典(dict

下面我们实际操作一下:

def t1(param1, *param2):
        print(param1)
        print(param2)
t1(1,2,3,4)

# 1
# (2,3,4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
'
运行
def t2(param1, **param2):
        print param1
        print param2
t2(1,a=2,b=3)

# 1
# {a:2, b:3}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

此外,一个(*)号还可以解压参数列表:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def t3(p1, p2):
        print(p1, p2)
args = [1, 2]
t3(*args)

# 1 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
'
运行

最后,还可以同时使用一个(*)和(**

def t4(a, b=10, *args, **kwargs):
        print(a)
        print(b)
        print(args)
        print(kwargs)
t4(1, 2, 3, 4, e=5, f=6, g=7)

# 1
# 2
# 3 4
# {'e': 5, 'g': 7, 'f': 6}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
'
运行
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/901290
推荐阅读
相关标签
  

闽ICP备14008679号