2024-06-30 16:12:59 发布
网友
有人能告诉我为什么这里的圆括号是双倍的吗?
self.__items.append((module, item))
也就是说:
parameter = (module, item) self.__items.append(parameter)
也就是说,内部paren首先创建一个元组,然后元组被用作append()的单个参数。
append()
内括号创建一个tuple。
>>> type(('a', 'b')) <type 'tuple'>
从技术上讲,元组可以在不使用括号的情况下创建:
>>> 'a', 'b' ('a', 'b')
但有时他们需要括号:
>>> 'a', 'b' + 'c', 'd' ('a', 'bc', 'd') >>> ('a', 'b') + ('c', 'd') ('a', 'b', 'c', 'd')
在您的例子中,它们需要括号来区分元组和函数的逗号分隔参数。例如:
>>> def takes_one_arg(x): ... return x ... >>> takes_one_arg('a', 'b') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: takes_one_arg() takes exactly 1 argument (2 given) >>> takes_one_arg(('a', 'b')) ('a', 'b')
它将元组(module, item)作为单个参数传递给函数。如果没有额外的paren,它将把module和item作为单独的参数传递。
(module, item)
module
item
也就是说:
也就是说,内部paren首先创建一个元组,然后元组被用作
append()
的单个参数。内括号创建一个tuple。
从技术上讲,元组可以在不使用括号的情况下创建:
但有时他们需要括号:
在您的例子中,它们需要括号来区分元组和函数的逗号分隔参数。例如:
它将元组
(module, item)
作为单个参数传递给函数。如果没有额外的paren,它将把module
和item
作为单独的参数传递。相关问题 更多 >
编程相关推荐