为什么python中的__init__失败

时间:2013-09-07 06:42:38

标签: python class init

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

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

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

args =  (3,)
kwargs =  {}

这是理想的。

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

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

输出

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

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

1 个答案:

答案 0 :(得分:6)

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

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

__init__用于课程:)。