是否可以将属性分配给'Nonetype' object
以告诉 Python 如果它们被调用该怎么办?
这是我的问题:
我有一个类作为库来存储myOtherObject
. 在添加实例之前,它首先检查该键是否已经存在,然后将数据附加到分配给该键的实例中,而不是覆盖它。
class MyClass:
def __init__(self):
self.myLibrary = {}
def __setitem__(self, key, item):
if key not in self.myLibrary:
self.myLibrary[key] = myOtherObject(name=item[0], attr1=[item[1]], attr2=[item[2]])
else:
self.myLibrary[key].attr1.append(item[1])
self.myLibrary[key].attr2.append(item[2])
def __getitem__(self, key):
if key in self.myLibrary:
return self.myLibrary[key]
else:
return None #???
从库中检索数据时,它应该检查键是否也存在,如果键存在,则只返回分配的对象。这可以正常工作或仅调用对象,但在调用该对象的属性时则不行:
>>> o = MyClass()
>>> o['key1'] = ['name1','b','c']
>>> o['key1']
<__main__.myOtherObject instance at 0x05509B48>
>>> o['key1'].attr1
'b'
>>> o['key2']
>>> o['key2'].attr1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'attr1'
我可以以某种方式告诉 Python 不要做任何事情,只None
在属性attr1
和attr2
被调用时返回'NoneType' object
?