2012-04-19 76 views

回答

7

它传递的元组(module, item)的功能作为一个参数。如果没有额外的参数,它将作为单独的参数传递moduleitem

+1

到目前为止提供的所有答案都应该对OP有所帮助。我个人最喜欢这个,因为它没有引发关于元组创建的迂回警报。做得好! – 2012-04-19 22:52:27

+2

@JohnY人知道它创建了一个元组显然不会在这里提出这个问题。 – 2015-12-13 12:18:15

+0

@ Hi-Angel:我不认为你理解我的评论。我指的是“整体式”,就是整个“元组是由逗号而不是括号创建的”。元组的学生们喜欢关注这一点,并且似乎在每个机会都这样做。当然,这是一个真正的观点;但对我而言,这是过于技术性的,特别是对初学者的解释。我喜欢这个答案的是,它的表述方式*不强调这一点。 – 2015-12-13 17:21:38

11

内括号创建一个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') 
+0

啊,我明白了,谢谢。 :) – BrianFreud 2012-04-19 22:46:00

2

这是完全一样的话说:

parameter = (module, item) 
self.__items.append(parameter) 

即内部元素首先在元组被用作append()的单个参数之前创建一个元组。

+0

除了你不需要在你的例子中的元组周围的参数...参数=模块,项目就好了。 – ch3ka 2012-04-20 00:23:37