gpt4 book ai didi

Python 2.6 : Class inside a Class?

转载 作者:IT老高 更新时间:2023-10-28 22:09:48 27 4
gpt4 key购买 nike

大家好,我的问题是我想弄清楚如何让一个类(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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com