【问题标题】:Why the result of the function is different when one argument used in args?为什么在 args 中使用一个参数时,函数的结果会有所不同?
【发布时间】:2021-04-21 02:23:40
【问题描述】:

当我在 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,)

【问题讨论】:

标签: python jupyter-notebook args


【解决方案1】:

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

一个特殊的问题是包含 0 或 1 的元组的构造 items:语法有一些额外的怪癖来适应这些。空的 元组由一对空括号构成;一个元组 一个项目是通过在一个带有逗号的值后面构造的(它不是 足以将单个值括在括号中)。

docs 结束时评论说这个实现确实“丑陋但有效”。

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2012-02-07
    • 2017-01-19
    相关资源
    最近更新 更多