gpt4 book ai didi

python - 为什么在 args 中使用一个参数时函数的结果不同?

转载 作者:行者123 更新时间:2023-12-04 07:46:05 25 4
gpt4 key购买 nike

当我在 args 中传递 1 个参数时,它返回/打印元组中的参数和逗号。但是为什么不在 2 个或更多参数后添加逗号?

def print_args(*args):
print(args)

#If arguments are more than one or zero:

print_args(1,2,3) #Out: (1,2,3)
print_args(1,2) #Out: (1,2)
print_args() #Out: ()

#If I pass 1 argurment:

print_args(1) #Out: (1,) ?
print_args("a") #Out: ('a',)?
print_args([]) #Out: ([],) ?

#Using return statement instead of print():

def return_args(*args):
return args

return_args(1,2) #Out: (1, 2)
return_args(1) #Out: (1,)

最佳答案

在单个项目周围添加括号与冗余分组相同,并且不会将对象创建为元组。来自 docs :

A special problem is the construction of tuples containing 0 or 1items: the syntax has some extra quirks to accommodate these. Emptytuples are constructed by an empty pair of parentheses; a tuple withone item is constructed by following a value with a comma (it is notsufficient to enclose a single value in parentheses).


docs最后评论说这个实现确实“丑陋,但有效”。

关于python - 为什么在 args 中使用一个参数时函数的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67188545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com