核对
hasattr
__setattr__
class Test:
def __init__(self, some_data_source):
self.a = 5
self.b = some_data_source['c']
def __setattr__(self, name, value):
if hasattr(self, name):
raise ValueError('cannot set %s to %s' %(value, name))
self.__dict__[name]=value
data_source = {
'c': 'some data'
}
x = Test(data_source)
x.b='raise' # this will raise error