【发布时间】:2021-10-19 05:36:35
【问题描述】:
def minimum (*n):
print(n)
minimum(1)
minimum(1,2)
def func(*args):
print(args)
values1 = (1,2)
values2 = ((1,2), (3,4))
func(values1)
func(values2)
OUTPUT:
(1,)
(1, 2)
((1, 2),)
(((1, 2), (3, 4)),)
Process finished with exit code 0
第一个 O/p: 我认为python期望传递多个参数,所以在1之后有一个逗号(,)。?
第二个O/p: 现在 python 看到多个参数被传递,没有逗号。它将 args 存储为一个元组?
第三个 O/p 和第四个 O/p: 为什么还有逗号?即使我通过了 2 个元组,假设 python 期望像上面这样的多个元组?
帮助我理解这一点。
【问题讨论】:
-
func(val)只传递一个参数。由于*args,它最终形成一个元组。如果你传递一个元组作为那个参数,那么你会得到一个元组中的一个元组。 -
你知道
(1,)和(1, 2)都是元组吗?注意两者的形式是(..., ...)。 -
逗号组成一个元组。
(1,)是一个元组,(1)不是。 -
目前还不清楚“好风格”是什么意思。这是表示元组的方式。
标签: python python-3.x tuples function-call