Portál AbcLinuxu, 14. května 2025 01:01

Dotaz: Sestavení strom objektů v pythonu

3.2.2016 22:41 Host
Sestavení strom objektů v pythonu
Přečteno: 343×
Odpovědět | Admin
Ahoj, měl bych takový zvláštní dotaz, pročítám stále manuály a různé příklady a nemůžu nikde najít jak se děla složitý strom tříd/funkcí/objektů.
Chci zavolat třídu s názvem Kontinet
obj = Kontinent()
Chci zavolat metodu s názvem Stat uvnitř Kontinet
obj = Kontinent()
obj.stat()
Chci zavolat další '?něco?' s názvem kraj uvnitř Stat a uvnitř Kontinet atd..

Nakonec chci volat něco takového
kontinent.stat.kraj.okres.posta()
Jak to mám do sebe vnořit ? Poradí někdo ?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

xxxxxx avatar 4.2.2016 13:37 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Sestavení strom objektů v pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kontinent může mít svou proměnnou stat:
class Posta(object):
    pass

class Okres(object):
    def __init__(self):
        self.posta = Posta()

class Kraj(object):
    def __init__(self):
        self.okres = Okres()

class Stat(object):
    def __init__(self):
        self.kraj = Kraj()

class Kontinent(object):
    def __init__(self):
        self.stat = Stat()

>>> obj = Kontinent()

>>> obj
<__main__.Kontinent object at 0x7ff52cad26d8>

>>> obj.stat
<__main__.Stat object at 0x7ff52cad2748>

>>> obj.stat.kraj
<__main__.Kraj object at 0x7ff52cad27b8>

>>> obj.stat.kraj.okres
<__main__.Okres object at 0x7ff52cad2828>

>>> obj.stat.kraj.okres.posta
<__main__.Posta object at 0x7ff52cad2898>
Pokud bys chtěl volat ten objekt jako funkci, implementuj si metodu __call__.

Je to to, co jsi myslel?
4.2.2016 19:30 Host
Rozbalit Rozbalit vše Re: Sestavení strom objektů v pythonu
To zatím nevím ;-) musím to pořádně prostudovat, každopádně zatím moc děkuji...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.