访问lis中类的组件

2024-09-27 19:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个不起作用的代码:

class Airport():
 def _init_ (self):
    self.Code_Icao=""
    self.Latitude=""
    self.Longitude=""
    self.Schengen=False
A=Airport()
A.Code_Icao="LMAO"
A.Latitude="12321412"
A.Longitude="12123123"
B=Airport()
B.Code_Icao="JEJE"
B.Latitude="1231231"
B.Longitude="123123"
v=[]
v.append(A.__dict__)
v.append(B.__dict__)
print v[0].Code_Icao

我不知道为什么它不允许我访问列表组件的代码。
我经常会遇到这样的错误:

Traceback (most recent call last): File "/Users/marc/PycharmProjects/untitled5/read.py", line 18, in print v[0].Code_Icao AttributeError: 'dict' object has no attribute 'Code_Icao'


Tags: 代码selffalseinitdefcodedictclass
1条回答
网友
1楼 · 发布于 2024-09-27 19:19:05

在以下行中:

v=[]
v.append(A.__dict__)
v.append(B.__dict__)

你不是把AB附加到v,而是两个dictionaries with ^{} and ^{}'s writable attributes。注意这里的区别:

>>> A
<__main__.Airport instance at 0x10c30c758>
>>> A.__dict__
{'Latitude': '12321412', 'Longitude': '12123123', 'Code_Icao': 'LMAO'}

A是一个Airport对象,而A.__dict__是一个字典,其中存储了A的属性。你知道吗

因此,由于您将字典存储在v,因此必须使用正确的表示法来访问其值:

print v[0]['Code_Icao']

它应该打印出你想要得到的值。你知道吗

相关问题 更多 >

    热门问题