2012-07-12 101 views
-1

我是新来的python,我有传递参数的愚蠢问题。Python:函数,传递参数

class MyClass(): 

    @staticmethod 
    def add_group(name, parent_id): 
     print "add_group method, name: %s, parent_id: %s" % (name, parent_id) 

其他类的方法

def task(): 
    print "task method, name: %s, group_id: %s" % (name, parent_id) 
    MyClass.add_group(name, parent_id) 

输出:

task method, name: blabla, group_id: 15 

add_group method, name: blabla, parent_id: (15L,) 

什么用PARENT_ID参数发生了什么?任何帮助,将不胜感激!

+1

你'group_id'不'parent_id' – Adam 2012-07-12 04:02:12

+1

也叫'MyClass.add',并且向我们展示MyClass.add_group'的'定义过去了。 – 2012-07-12 04:02:32

+0

'MyClass.add(name,group_id)'从哪里来? – 2012-07-12 04:02:39

回答

1

在一种情况下,你在15过去了,在你在(15L,)通过另一种情况下(即,(一个元组,其第一值是15L,即长15)或表示15.一个任意精度的数)

当数字变成非常大的数值(例如10 ** 20)时,数字自然会变成多头,但在这种情况下它非常小;我能想到你的唯一方法会得到很长的一段时间,你没有预料到会像10**20 - 10**20 + 15那样做,或者在你的程序中有一些其他的价值是很长的。

编辑:具体而言,您程序中的其他值可能由您正在使用的库返回。

+0

这是我认为OP会得到的最佳答案。添加一个@classmethod装饰器的例子,我称之为黄金。 – jdi 2012-07-12 04:25:18

+1

其实。 OP正在变长的事实使得我可能从数据库驱动程序直接返回值。通常情况下,你不只是随机看到一个很长的,除非你做了一个。 – jdi 2012-07-12 04:27:35

+0

@jdi:很好的电话。是的,编辑答案表明这一点。 – ninjagecko 2012-07-12 04:29:14