为什么python中的初始化失败
我使用python2.7来定义这样的函数为什么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函数,我不能通过调用
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