abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    včera 15:11 | Nová verze

    Byl vydán Mozilla Firefox 114.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Nově jsou také na Linuxu podporovány USB FIDO2/WebAuthn bezpečnostní klíče. WebTransport je ve výchozím stavu povolen. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 114 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Nová verze

    Byla vydána červnová aktualizace aneb verze 2023.06-1 linuxové distribuce OSMC (Open Source Media Center). Z novinek lze zdůraznit povýšení verze multimediálního centra Kodi na 20. Na léto je plánováno představení nového vlajkového zařízení Vero, jež nahradí Vero 4K +.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Pozvánky

    Už zítra 7. června od 17 hodin proběhne SUSE Czech Open House 2023 aneb den otevřených dveří pražské pobočky SUSE. Těšit se lze na komentovanou prohlídku nebo přednášku o spotřebě procesorů.

    Ladislav Hagara | Komentářů: 0
    5.6. 22:33 | IT novinky

    Na vývojářské konferenci Applu WWDC23 byla představena řada novinek (cz): brýle Apple Vision Pro, MacBook Air 15” s čipem M2, Mac Studio s čipem M2 Max nebo M2 Ultra, Mac Pro s čipem M2 Ultra, iOS 17, iPadOS 17, macOS Sonoma, watchOS 10, …

    Ladislav Hagara | Komentářů: 2
    5.6. 21:55 | Pozvánky

    Chystá se poslední jarní Virtuální Bastlírna. Nachystejte si ledové kávy, mojita a vodní chladiče a pojďte se se strahovskými bastlíři pobavit o technice a bastlení! Ptáte se, co mají bastlíři za novinky? Například se ukázalo, že OLED s SSD1306 ve skutečnosti nejsou nutně jen černobílé. Vyšla také nová verze KiCADu včetně betaverze pluginu pro tvorbu databázových knihoven pro KiCAD v InvenTree a na internetu se objevil USB

    … více »
    bkralik | Komentářů: 1
    5.6. 21:22 | IT novinky

    6. červen je dnem za skutečný internet (neboli Světový den IPv6). Již tradiční příležitost urgovat svého ISP, kdy zavede do sítě IPv6, ale také příležitost šířit osvětu i mezi netechnické uživatele. V současnosti má IPv6 v ČR jen cca 20 % uživatelů (podle statistik společností Akamai a Google).

    xHire | Komentářů: 0
    5.6. 15:44 | Pozvánky

    Festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí Maker Faire Prague 2023 proběhne o víkendu 10. a 11. června na Výstavišti Praha.

    Ladislav Hagara | Komentářů: 0
    5.6. 11:44 | Nová verze

    Byla vydána verze 8.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.6. 11:33 | Zajímavý projekt

    Projekty Blink a Blinkenlights dospěly do verze 1.0. Jedná se o x86-64-linux emulátor a jeho TUI nadstavbu sloužící jako debugger. Blink je v porovnání s qemu-x86_64 menší a rychlejší.

    Ladislav Hagara | Komentářů: 0
    5.6. 10:44 | Komunita

    Bylo potvrzeno, že Debian 12 s kódovým jménem Bookworm vyjde v tuto sobotu 10. června.

    Ladislav Hagara | Komentářů: 19
    Twitter (nejen pro příležitostné čtení)
     (89%)
     (2%)
     (9%)
    Celkem 152 hlasů
     Komentářů: 6, poslední včera 09:40
    Rozcestník

    Dotaz: Python - jak v inner class ziskat obsah z promenne v parent class

    20.8.2015 22:13 zdenek2008 | skóre: 26
    Python - jak v inner class ziskat obsah z promenne v parent class
    Přečteno: 179×
    V rodicovske tride "entity" bych chtel mit vnitrni tridu "asset" ktera bude potrebovat mit pristup k promenne definovane o stupinek vys v te rodicovske, konkretne k jejimu nazvu v promenne "name". Prozatim zkousim ruzne navody z webu ale dostavam chybova hlaseni; nevedeli byste nekdo jak "name" spravne nacist do funkce "describe_yourself()" ve tride "asset"? Predem diky za pripadne tipy.
    class entity:
      name = ""
      
      def __init__(self, name):
        self.name = name
        self.asset = self.asset()    
        
      def say_hello(self):
        print "Hello, my name is " + self.name
    
      class asset:
        def describe_yourself(self):
          print "This is [ZDE SE MA VYPSAT OBSAH PROMENNE name Z PARENT CLASS]'s inherent asset"
            
    #create virtual object
    dezo = entity("Dezo")
    
    #call methods owned by virtual object
    dezo.say_hello()
    dezo.asset.describe_yourself()
    

    Odpovědi

    21.8.2015 00:47 chrono
    Rozbalit Rozbalit vše Re: Python - jak v inner class ziskat obsah z promenne v parent class
    Nebolo by najjednoduchšie predať potrebné parametre priamo pri vytváraní objektu?
    21.8.2015 01:09 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Python - jak v inner class ziskat obsah z promenne v parent class
    Místo třídy asset s metodou describe_yourself() udělej jen metodu describe(). Celé se to hezky zjednoduší:
    class Entity:
        def __init__(self, name):
            self.name = name
        
        def say_hello(self):
            print "Hello, my name is " + self.name
    
        def describe(self):
            print "This is " + self.name + "'s inherent asset"
            
    #create virtual object
    dezo = Entity("Dezo")
    
    #call methods owned by virtual object
    dezo.say_hello()
    dezo.describe()
    
    Jenom upozorňuji, že by bylo lepší, kdyby v té třídě žádný print nebyl...
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    rADOn avatar 21.8.2015 15:50 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Python - jak v inner class ziskat obsah z promenne v parent class
    To afaik nejde udelat a ani to nedava smysl v jazyce kde nejsou obory platnosti. V pythonu jsou vsechny objekty organizovane v oborech platnosti (namespaces) a tvuj kod je ekvivalentni nasledujicimu:
    class asset_tmp:
      def describe_yourself(self):
        print "This is [ZDE SE MA VYPSAT OBSAH PROMENNE name Z PARENT CLASS]'s inherent asset"
    
    class entity:
      name = ""
     
      def __init__(self, name):
        self.name = name
        self.asset = self.asset()    
        
      def say_hello(self):
        print "Hello, my name is " + self.name
    
      asset = asset_tmp
    
    asset_tmp.__name__ = "asset"  # pro puristy
    del asset_tmp
    
    …ergo i kdyby se ti to povedlo nejak zaridit tak to stejne nejspis nebude delat to co potrebujes nebo to bude zbytecne slozity.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    rADOn avatar 21.8.2015 16:08 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Python - jak v inner class ziskat obsah z promenne v parent class
    BTW nejde o to ze by to zaridit neslo. Kdyz to vezmu doslova tak je dost jednoduche:
    class Asset(object):
      def __init__(self, cls):
        self.cls = cls
      
      def describe_yourself(self):
        print "This is %s's inherent asset" % self.cls.name
    
    
    class Entity(object):
      name = ""
      
      def __init__(self, name):
        self.name = name
        self.asset = Asset(self)
        
      def say_hello(self):
        print "Hello, my name is " + self.name
    
    Klidne to muzes vrazit do namespace tridy, ale nedava smysl to takhle svazovat kdyz Asset objekt muzes aplikovat na libovolny jiny objekt. A cely je to cviceni v marnosti pacz kdyz se na to podiva pythonista, tak uvidi jenom zbytecne prekomplikovany zpusob jak napsat dezo.__name__.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    21.8.2015 19:45 Delaunay | skóre: 17 | blog:
    Rozbalit Rozbalit vše Re: Python - jak v inner class ziskat obsah z promenne v parent class
    Stačí do konstruktoru třídy entity přidat jediný řádek:
    self.asset.name = name
    

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.