首页 > 解决方案 > 带有dict对象的Python构造函数,其中值需要修改

问题描述

我正在尝试创建一个接受字典的构造函数,并且在类中我将如何使用 dict 键和值创建方法来实现逻辑和修改。在下面,我想使用 living_state 键和值返回列表状态的列表

class StructMyDict(dict):
    def __getattr__(self, name):
        try:
            return self[name]
        except KeyError as e:
            raise AttributeError(e)

    def __setattr__(self, name, value):
        self[name] = value

    def lived(self):
        d= list(self['lived_state'].split(','))
        return(d)

d = {'fname':'John', 'lname': 'Burns', 'Age': 34, 'Gender': None, 'State' : 'CA', 'lived_state' : 'CA,TX,NY,FL'}

v = StructMyDict(**d)

下面打印调用命令的预期输出

print(v.fname) #John
print(v.lname) #Burns
print(v.lived) # return list as ['CA', 'TX', 'NY', 'FL']
print(v.Gender) #''  want this to be '' blank but not None
print(v.address) #AttributeError

电流输出

John
Burns
<bound method StructMyDict.lived of {'fname': 'John', 'lname': 'Burns', 'Age': 34, 'Gender': None, 'State': 'CA', 'lived_state': 'CA,TX,NY,FL'}>
None

标签: python-3.xconstructor

解决方案


推荐阅读