Python:在方法中解压字典 [英] Python: unpack dictionary inside a method

查看:33
本文介绍了Python:在方法中解压字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Python 中,我想通过向其中加载多个变量来创建一个新对象.最简单的方法是传递字典,但这使得编程非常烦人:我必须一直调用 self.params['health'] 而不是 self.health.有没有办法动态设置变量名(字段)?

In Python, I want to create a new object by loading a number of variables into it. The easiest way is to pass a dictionary, but that makes programming very annoying: instead of self.health I have to call self.params['health'] all the time. Is there any way to set variable names (fields) dynamically?

我有:

DEFAULT_PARAMS = {
    'health': 10,
    'position': []
}

def __init__(self, params = DEFAULT_PARAMS):
    self.params = params
    print self.params['health']

我想要:

DEFAULT_PARAMS = {
    'health': 10,
    'position': []
}

class Name():
    def load(self, params):
        # what goes here?

    def __init__(self, params = DEFAULT_PARAMS):
        self.load(params)
        print self.health

推荐答案

class Name(object):
    def __init__(self, *params):
        self.__dict__.update(DEFAULT_PARAMS)
        self.__dict__.update(params)

b = Name(position=[1,2])
print b.position

这篇关于Python:在方法中解压字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆