只使用关键字args初始化python对象
我想知道如果可能的话,如何在python中初始化一个只使用命名参数而不使用其他参数的对象只使用关键字args初始化python对象,python,object,constructor,instantiation,Python,Object,Constructor,Instantiation,我想知道如果可能的话,如何在python中初始化一个只使用命名参数而不使用其他参数的对象 如果交换self.name=name和self.age=age的顺序,则错误为初始化age。我将这些作为关键字args提供给对象,为什么这还不够?我在python中看到一个类使用显式命名的关键字参数及其默认值(filename=None)实例化,所以我认为**kwargs也可以工作。谢谢您缺少的是kwargs需要通过名称显式检索。下面是代码的修改版本,以进行说明。注意name和age的初始化 class
如果交换self.name=name和self.age=age的顺序,则错误为初始化age。我将这些作为关键字args提供给对象,为什么这还不够?我在python中看到一个类使用显式命名的关键字参数及其默认值(filename=None)实例化,所以我认为**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
输出:
<__main__.Person object at 0x1074e0bd0>
45
45
kwargs
是一本字典。所以你应该这样做:
class Person(object):
def __init__(self, **kwargs):
self.name = kwargs["name"]
self.age = kwargs["age"]
不是我否决了你的问题,但仅供参考,粘贴文本代码比粘贴屏幕截图更好。使用*args可以通过self完成。first_arg=args[0]:)ty Rothman先生