2011-07-30 64 views
1

大家好这可能是一个非常简单的事情,我忽略了,但是有人可以指出我如何处理这个问题的正确方向。从Python中的函数中访问* args

def nodeFunction(self,*args): 
    return self[1] + self[2]  

基本上我想要做的就是抓取通过参数传入的数据。当我使用*args时,我只是停留在函数内引用参数的语法上。

+0

Python中整齐的经验法则是名称必须来自某个地方;他们不会被语言魔法插入。 (一个实例方法只将实例称为self,因为它是该方法的第一个参数 - 没有什么神奇的'this'。属性的setter指的是它被设置为参数的值 - 没有如果你想在一个模块'foo'中使用一个函数,你必须导入'foo',这样解释器就知道它是什么了等等) – katrielalex

回答

7

args是一个简单的列表:

def nodeMethod(self, *args): 
    return args[0], args[1] 

那是什么意思?

请注意,没有什么特别的“args”。你可以使用任何变量名称。这就是重要的运营商*

>>> class Node(object): 
...  def nodeMethod(self, *cornucopia): 
...   return cornucopia[0], cornucopia[1] 
... 
>>> n = Node() 
>>> n.nodeMethod(1, 2, 3) 
(1, 2) 

尽管如此,“args”是最常用的变量名称;没有一个好的理由,我不会使用其他任何东西,这对其他人来说是显而易见的

+0

血腥的地狱,我是一个白痴,对不起仍然得到蟒蛇的窍门。那就是我正在寻找的谢谢。我可以接受答案。 – SacredGeometry

1
def nodeFunction(self, arg1, arg2, *args) 

*arg在参数列表是指:通过其剩余参数作为变量arg列表。因此请检查如何处理list。注意:列表索引从0开始。