嘿大家,我的问题是我试图弄清楚如何获得INSIDE课程.
我正在做的是我有一个飞机课程,其中包括飞行速度,飞行距离,油耗等等所有统计数据.然后我有一个飞行班,这是有关航班的所有细节:距离,起始位置和时间,结束位置和时间,持续时间等.
但我意识到每架飞机都有多个航班,为什么不把所有的飞行数据都放到飞机上呢?虽然我怎么把一个类INTO放到另一个类,所以我可以调用这样的东西:
Player1.Airplane5.Flight6.duration = 5 hours
Run Code Online (Sandbox Code Playgroud)
我有点用飞机类完成它,但当我去保存信息(将所有内容列入文本文档)时,它给我的全部是数据的Hex位置而不是实际的字符串.
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
Run Code Online (Sandbox Code Playgroud)
有没有办法把类放在一个类中?或者我需要制作一个超级播放器类来处理我使用其他类的所有信息?
Mar*_*tos 64
我认为你混淆了对象和类.类中的类看起来像这样:
class Foo(object):
class Bar(object):
pass
>>> foo = Foo()
>>> bar = Foo.Bar()
Run Code Online (Sandbox Code Playgroud)
但它并不像我想要的那样.也许你是在一个简单的包含层次结构之后:
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
...
Run Code Online (Sandbox Code Playgroud)
然后,您可以构建和使用对象:
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
Run Code Online (Sandbox Code Playgroud)
Joh*_*web 28
听起来你在谈论聚合.您的player类的每个实例可以包含零个或多个实例Airplane,而这些实例又可以包含零个或多个实例Flight.您可以使用内置list类型在Python中实现此功能,以便使用数字保存命名变量.
class Flight(object):
def __init__(self, duration):
self.duration = duration
class Airplane(object):
def __init__(self):
self.flights = []
def add_flight(self, duration):
self.flights.append(Flight(duration))
class Player(object):
def __init__ (self, stock = 0, bank = 200000, fuel = 0, total_pax = 0):
self.stock = stock
self.bank = bank
self.fuel = fuel
self.total_pax = total_pax
self.airplanes = []
def add_planes(self):
self.airplanes.append(Airplane())
if __name__ == '__main__':
player = Player()
player.add_planes()
player.airplanes[0].add_flight(5)
Run Code Online (Sandbox Code Playgroud)