Python 2.6: Class inside a Class?

前端 未结 3 1747
小蘑菇
小蘑菇 2020-12-22 20:16

Hey everyone, my problem is that im trying to figure out how to get a class INSIDE another class.

What I am doing is I have a class for an Airplane with all its stat

3条回答
  •  天涯浪人
    2020-12-22 21:01

    I think you are confusing objects and classes. A class inside a class looks like this:

    class Foo(object):
        class Bar(object):
            pass
    
    >>> foo = Foo()
    >>> bar = Foo.Bar()
    

    But it doesn't look to me like that's what you want. Perhaps you are after a simple containment hierarchy:

    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
            ...
    

    Then you can build and use the objects thus:

    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
    

提交回复
热议问题