Python从dynamicallycreated对象的属性调用其他对象的函数

2024-09-28 23:01:45 发布

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

给定一个Windows ini风格的配置文件,例如'飞机.ini':

[JumboJet]
wingspan = 211
length = 231
seating = 416
crew = 2
unit_cost = 234000000
on_hand = 3

[SopwithCamel]
wingspan = 28
length = 18
armament = twin Vickers
crew = 1
on_hand = 1

[NCC1701]
length = 289 meters
crew = 430
speed = Warp 8
armament = 12 phasers, 6 photon torpedo

我使用Python2.7.3库中的ConfigParser模块读入文件的内容,然后使用内置的type()函数为配置文件中的每个[section]创建一个“Airplane”类型的新对象。每个name = value对都成为对象的属性:

^{pr2}$

注释为“这就是魔术发生的地方”这一行表示我希望通过属性的“setter”设置对ConfigParser的set()方法的调用,以更新config对象。我相信setattr(plane, name, value)是创建属性的“常用”方法,但这不会调用{}。在

我希望能够灵活地将对象的属性动态定义为配置文件的每个部分中的项,即使每个节中的项不同,或者每个节的项数不同。在

有什么关于我应该如何实现这一点的建议?我认为property()或setattr()不能满足我的需要。在


Tags: 对象方法name属性valueon配置文件length
1条回答
网友
1楼 · 发布于 2024-09-28 23:01:45

我认为动态地生成类型会使它过于复杂。相反,我将创建一个类来封装一个类型的平面,并用文件中的信息创建实例。在

然后为实际平面创建一个单独的类,该类包含一个类型属性,该属性指向它所属的类型。在

相关问题 更多 >