Python:如何使用两种不同的参数方法调用__Init__?

Kit*_* Ho 3 python constructor

我想制作一个能够理解这些助手的初始化方法.

candy(name="foo", type="bar")

or pass into a whole dict

candy({"name":"foo" , "type":"bar"})

class candy:
    def __init__ ?????
Run Code Online (Sandbox Code Playgroud)

我怎样才能使init方法适应两个构造函数?

感谢帮助

Che*_* Qi 5

您可以将init定义为正常,例如:

class candy(object):
    def __init__(self, name, type):
        self.name = name
        self.type = type
Run Code Online (Sandbox Code Playgroud)

然后以两种方式传递参数:

candy(name='name', type='type')
Run Code Online (Sandbox Code Playgroud)

要么

candy(**{ 'name': 'name', 'type': 'type' })
Run Code Online (Sandbox Code Playgroud)