python:实例属性错误

rem*_*emy 5 python

我得到一个词典来启动一个班主任.有一个人在场:'名字'.'name'字段是可选的,这意味着如果dict没有'name'项,那么person没有'name'值.我使用getter方法来获取实例属性,但是如果没有'name'值则会抛出错误.我不知道有什么好的编程风格来改进我的代码吗?因为python在运行时创建实例字段,所以我不知道如何使用像java这样的getter.

class Person:
    def __init__(self,person_dict):
        try:
            self.name = person_dict['name']
        except Exception:
            pass

    def getName(self):
        return self.name

pdict = {}
p = Person(pdict)
print p.getName()
Run Code Online (Sandbox Code Playgroud)

AttributeError:Person实例没有属性'name'

San*_*4ez 6

class Person:

    def __init__(self,person_dict):
        self.name = person_dict.get('name')
Run Code Online (Sandbox Code Playgroud)

在这种情况下self.name = person_dict.get('name')不会引发异常,而Person对象将具有name属性(None默认情况下)

UPD.因为getName方法没用,我从例子中删除了它.name直接访问attr.