为什么python中的初始化失败

为什么python中的初始化失败,python,class,init,Python,Class,Init,我使用python2.7来定义这样的函数 def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' 通过调用foo(3),输出如下: args = (3,) kwargs = {} 这是需要的 但是对于类中参数与foo的形式相同的\uuuuu init\uuuu函数,我不能通过调用

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

def foo(*args, **kwargs):
    print 'args = ', args
    print 'kwargs = ', kwargs
    print '---------------------------------------'
通过调用foo(3),输出如下:

args =  (3,)
kwargs =  {}
这是需要的

但是对于类中参数与foo的形式相同的
\uuuuu init\uuuu
函数,我不能通过调用
Person(3)

输出是

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

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

你可能想创建一个类而不是函数:


用于类:)。

您可能想创建一个类而不是函数:


用于类:)。

那么,如何使用*args和**kwargs来构造类的函数呢。我最初试图在类中重载初始化函数,但python不支持该功能。所需的调用如下:a=Person(name=“xxx”)b=Person(age=16)@speedmancs:您完全按照代码中的方式进行操作,除非没有意外地使用
def
,您的意思是
class
。谢谢,我真的犯了这个错误:)@speedmancs别担心,每个人都会偶尔出错;)。还有,别忘了:)!那么,如何使用*args和**kwargs来构造类的函数呢。我最初试图在类中重载初始化函数,但python不支持该功能。所需的调用如下:a=Person(name=“xxx”)b=Person(age=16)@speedmancs:您完全按照代码中的方式进行操作,除非没有意外地使用
def
,您的意思是
class
。谢谢,我真的犯了这个错误:)@speedmancs别担心,每个人都会偶尔出错;)。还有,别忘了:)!可能的重复可能的重复
    x = Person(3)
TypeError: Person() takes no arguments (1 given)
class Person():
    def __init__(self, *args, **kwargs):
        print args
        print kwargs