作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
大家好,我的问题是我想弄清楚如何让一个类(class)进入另一个类(class)。
我正在做的是我有一个关于飞机的类(class),其中包含关于它可以飞多快、可以飞多远、油耗等的所有统计数据。然后我有一个 Flight Class,其中包含有关航类的所有详细信息:距离、开始位置和时间、结束位置和时间、持续时间等等。
但我意识到每架飞机都有多个航类,那为什么不把所有的航类数据放到飞机类中呢?虽然我如何将一个类放到另一个类中,所以我可以这样调用:
Player1.Airplane5.Flight6.duration = 5 hours
我已经对飞机类做了一些处理,但是当我去保存信息(将所有内容都列出到文本文档中)时,它给我的只是数据的十六进制位置,而不是实际的字符串。
class Player (object):#Player Class to define variables
'''Player class to define variables'''
def __init__ (self, stock = 0, bank = 200000, fuel = 0, total_flights = 0, total_pax = 0):
self.stock = stock
self.bank = bank
self.fuel = fuel
self.total_flights = total_flights
self.total_pax = total_pax
self.Airplanes = Airplanes
self.flight_list = flight_list
有没有办法把一个类放在一个类中?还是我需要创建一个 super 播放器类来处理我使用其他类的所有信息?
最佳答案
我认为您混淆了对象和类。类中的类如下所示:
class Foo(object):
class Bar(object):
pass
>>> foo = Foo()
>>> bar = Foo.Bar()
但在我看来,这不是你想要的。也许您正在追求一个简单的包含层次结构:
class Player(object):
def __init__(self, ... airplanes ...) # airplanes is a list of Airplane objects
...
self.airplanes = airplanes
...
class Airplane(object):
def __init__(self, ... flights ...) # flights is a list of Flight objects
...
self.flights = flights
...
class Flight(object):
def __init__(self, ... duration ...)
...
self.duration = duration
...
然后你可以这样构建和使用对象:
player = Player(...[
Airplane(... [
Flight(...duration=10...),
Flight(...duration=15...),
] ... ),
Airplane(...[
Flight(...duration=20...),
Flight(...duration=11...),
Flight(...duration=25...),
]...),
])
player.airplanes[5].flights[6].duration = 5
关于Python 2.6 : Class inside a Class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222251/
我是一名优秀的程序员,十分优秀!