我有这个:
alert = Alert(title=a,
tlp=3,
tags=tags,
description='N/A',
type='external',
source='instance1',
sourceRef=sourceRef,
artifacts=artifacts)
我想知道如何获得' title'的价值,我试图这样做:
print(alert['title'])
但不起作用:
TypeError:'提醒'对象不可订阅
有什么想法吗?
答案 0 :(得分:0)
alert
是一个Python对象。您应该使用点符号( alert.title
)代替alert['title']
。
话虽如此,如果由于某种原因您实际上对alert['title']
感兴趣,您可以在__getitem__
中实施Alert
:
def __getitem__(self, item):
return getattr(self, item)
这是最基本的实现。您可能希望处理item
不存在的情况(当前异常将传播到调用代码)
class Foo:
x = 1
def __getitem__(self, item):
return getattr(self, item)
f = Foo()
print(f['x'])
# 1
print(f['y']
# AttributeError: 'Foo' object has no attribute 'y'
处理缺失属性的一种方法是使用getattr
的3 rd 参数,这是搜索属性不存在时的默认值:
class Foo:
x = 1
def __getitem__(self, item):
return getattr(self, item, None)
f = Foo()
print(f['y'])
# None