Python 为什么在args中使用一个参数时函数的结果不同?
当我在args中传递1个参数时,它返回/打印元组中的参数和逗号。但是为什么不在两个或更多参数后添加逗号呢Python 为什么在args中使用一个参数时函数的结果不同?,python,jupyter-notebook,args,Python,Jupyter Notebook,Args,当我在args中传递1个参数时,它返回/打印元组中的参数和逗号。但是为什么不在两个或更多参数后添加逗号呢 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
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,)
在单个项周围添加括号与冗余分组相同,并且不会将对象创建为元组。从: 一个特殊的问题是构造包含0或1的元组 items:语法有一些额外的怪癖来适应这些。空的 元组由一对空括号构成;具有 一项是通过在值后面加逗号(不是逗号)来构造的 足够将单个值括在括号中)
文章结尾评论说,这种实现确实“丑陋,但有效。”不是严格的重复,但这与