0

我正在使用python2.7来定义这样的函数

def foo(*args, **kwargs):
    print 'args = ', args
    print 'kwargs = ', kwargs
    print '---------------------------------------'

通过调用 foo(3),输出如下:

args =  (3,)
kwargs =  {}

这是想要的。

但是对于__init__参数与foo形式相同的类中的函数,我无法通过调用来实例化Person类Person(3)

def Person():
    def __init__(self, *args, **kwargs):
        print args
        print kwargs
x = Person(3)

输出是

    x = Person(3)
TypeError: Person() takes no arguments (1 given)

这让我很困惑,我错过了什么吗?

4

1 回答 1

6

您可能打算创建一个而不是一个函数

class Person():
    def __init__(self, *args, **kwargs):
        print args
        print kwargs

__init__是上课的:)。

于 2013-09-07T06:43:54.053 回答