Python中的*用法总结

目前大概就看到了 4 种用法,如果有不完善的欢迎补充

1.数学运算

print(2 * 3)   	# 6
print(2 ** 3)	# 8 
复制代码

2.对象重复

print('-' * 5)	# '-----'
复制代码

3.函数定义

定义函数时,在参数前加上*表示收集若干参数

def fun1(x, *args):
    print(x)
    print(args)

def fun2(x, **kwargs):
    print(x)
    print(kwargs)

def fun3(*args, **kwargs):
    print(args)
    print(kwargs)

fun1(0, 1, 2, 3)
fun2(0, a=1, b=2, c=3)
fun3(1, 2, 3, a=1, b=2, c=3)
复制代码

4.函数调用

调用函数时,在传入的参数前加上*表示对参数进行分解

list = [1, 2, 3]
print(*list)   # 1 2 3

data = [(1, 'a'), (2, 'b'), (3, 'c')]
l1, l2 = zip(*data)
print(l1) 	# (1, 2, 3)
print(l2) 	# ('a', 'b', 'c')

import torch.nn as nn
import torchvision.models as models
resnet = models.resnet18(pretrained=True)
modules = list(resnet.children())[:-1]	# remove the last FC layer
resnet = nn.Sequential(*modules)
复制代码

猜你喜欢

转载自juejin.im/post/7088631917100138527
今日推荐