cod*_*321 -2 python constructor object instantiation
我想知道如何在 python 中初始化一个对象,只使用命名的 args,如果可能的话。

如果self.name = name 和self.age = age 的顺序互换,则错误在于初始化age。我将这些作为关键字参数提供给对象,那为什么还不够呢?我看到一个类深入 python 实例化,使用显式命名的关键字参数和它们的默认值(文件名=无),所以我认为 **kwargs 也可以工作。谢谢
您缺少的是需要按名称显式检索 kwargs。这是您的代码的修改版本,以进行说明。需要注意的初始化name和age。
class Person(object):
def __init__(self, **kwargs):
self.name = kwargs.get('name')
self.age = kwargs.get('age')
# you'll probably want to check that all required
# members were initialized.
bob = Person(name='bob', age=45)
print bob
print bob.age
Run Code Online (Sandbox Code Playgroud)
输出:
<__main__.Person object at 0x1074e0bd0>
45
Run Code Online (Sandbox Code Playgroud)