python面对对象编程中,星号*的作用

2022-12-29  本文已影响0人  Co酱_秋乏术

*作用于元组,目的是将元组里的内容参数一个一个传入到函数中:

my_tuple = ("wang","yuan","wai")

temp(*my_tuple)

#---等同于---#

temp("wangyuan","yuan","wai")

更一般的,我们遇到的是这种情况:要执行的参数除了以*开头的元组数据,还有普通的单个参数。

def print_str(first, *second):

    print(first)

    print(second)

这里第二个带星号的参数*second可以没有任何输入,也可以有多个输入,比如:

print_str("hello","美女","小猫","青蛙")

hello是第一个参数first,而后面的那些都会被转为一个元组数据当作第二个参数*second。输出结果如下:

输出结果

不直接传入具体参数,而是传入一个元组变量,使用*解包:

numbers_strings = ("1","2")

def print_str(first, second):

    print(first)

    print(second)

if __name__ == "__main__":

    print_str(*numbers_strings)

输出结果:

1

2

numbers_strings是个元组变量,需要在前面加一个星号*来解包,把它展开成一个一个的值,才符合上面提到的正确输入格式。也就是说,print_str(*numbers_strings) 等同于 print_str("1","2","3","4","5") 

如图
上一篇 下一篇

猜你喜欢

热点阅读