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í
×
    dnes 16:44 | IT novinky

    Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.

    Ladislav Hagara | Komentářů: 1
    dnes 14:44 | Nová verze

    Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.

    VSladek | Komentářů: 0
    včera 21:55 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Komunita

    Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání

    … více »
    Ladislav Hagara | Komentářů: 9
    6.4. 05:33 | Pozvánky

    Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout

    … více »
    bkralik | Komentářů: 3
    5.4. 23:33 | Nová verze

    Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.

    Ladislav Hagara | Komentářů: 1
    5.4. 23:00 | Zajímavý projekt

    VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.

    NUKE GAZA! 🎆 | Komentářů: 8
    5.4. 05:22 | Zajímavý software

    Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 20
    5.4. 04:11 | Zajímavý software

    Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (1%)
     (14%)
     (24%)
    Celkem 1242 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Python a volání fci mezi moduly

    2.7.2007 11:17 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Python a volání fci mezi moduly
    Přečteno: 433×
    Jelikož se teprve učím python, nejsem si jistý, jestli mé postupy jsou správné a proto se ptám. Dejme tomu, že mám hlavní soubor do kterého importuju 2 moduly. Tyto moduly obsahují fce. Zjistil jsem, že fci, která je v jednom modulu nemůžu volat z modulu druhého. Také z modulu se mě nedaří přistupovat k objektům z hlavního souboru. Zkoušel jsem moduly importovat přez "import modul" i "from modul import *" a výsledek vždy stejný. Tuto situaci jsem prozatím vyřešil tak, že moduly spouštím přímo pomocí execfile(), ale to nebude asi správný postup. Př:
    hlavní soubor:
    import modul
    
    def fce():
      print "ok"
    

    modul:
    fce() // neprovede se
    
    Je tedy možné přistupovat z modulů k hlavnímu souboru?

    Odpovědi

    kozzi avatar 2.7.2007 11:28 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Je tedy možné přistupovat z modulů k hlavnímu souboru?
    IMHO asi ne. Ono moduly by měli obsahovat určité fumkce, které plánuješ používat ve více souborech a prpto jsou umístěny jako modul. Takže by čistě teoreticky moduly něměli přistupovat k hlavnímu souboru, ale hlavní soubor by měl vše propojovat. Takže hlavní soubor bude využívat funkce z různých modulů a ne naopak. Takže pokud modul obsahuje funkci, která by měla chtít přistupovat do hlavního souboru, tak je to špatně navržený, a ta funkce by měla být přímo v tom hlavním souboru.
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    2.7.2007 11:37 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Takže když mám v hlavním souboru napsané GUI a v modulu mám fci, která něco časově náročného provádí a chci průběh té fce zobrazovat v GUI pomocí progressbaru tak musím tu funkci vložit do hlavního souboru? Kdyby aspoň funkce uměly vracet hodnoty nějak průběžne, tak bych věděl :-D
    2.7.2007 13:16 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Takže když mám v hlavním souboru napsané GUI a v modulu mám fci, která něco časově náročného provádí a chci průběh té fce zobrazovat v GUI pomocí progressbaru tak musím tu funkci vložit do hlavního souboru? Kdyby aspoň funkce uměly vracet hodnoty nějak průběžne, tak bych věděl :-D
    Zrovny v pythonu umí (yield).

    Každopádně, toto se vždy (nezávisle na jazyce) řeší pomocí callbacku.

    Obecně platí: pokud potřebuješ takovéto zpřeházení závislostí, tak to máš špatně navržené.
    2.7.2007 13:39 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Teď jsem si našel něco o yieldu a zdá se, že vyřeší můj problém s těmi moduly. Dík za info
    2.7.2007 11:40 HH
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Napr.: Pokud fce() z modul_1 vola fce() z modul_2, musi modul_1 obsahovat
    import modul_2.
    Hlavni soubor bude obsahovat
    import modul_1.
    Potom hlavni soubor muze volat fce, promene atd z modul_1 i modul_2
    2.7.2007 11:47 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    A kdybych náhodou potřeboval volat funkce z jednoho modulu v druhém a naopak, tak mám smůlu a musím můj program navrhnout jinak?
    Pavel Stárek avatar 2.7.2007 11:59 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Hmm, mělo by fungovat asi toto:

    modul1:
    import modul2
    def fcemodulu1:
      print "Ja sem modul 1!"
    # tady a takhle se zavola funkce z modulu 2
    modul2.fcemodulu2()
    
    modul2:
    import modul1
    def fcemodulu2:
      print "Ja sem modul 2!"
    # tady a takhle se zavola funkce z modulu 1
    modul1.fcemodulu1()
    
    Zrovna tak jde z "podřízených" modulů volat funkce z "hlavního" modulu. Pokud se hlavní modul jmenuje hlavnimodul a v něm bude nějaká funkce, tak můžu v "podřízeném" modulu provést:
    import hlavnimodul
    hlavnimodul.fce()
    
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    kozzi avatar 2.7.2007 12:37 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    No s pythonem uz chvili nedelam ale mam pocit, ze takto to presne nejde, protoze python kdyz zacne importovat jeden modul, tak nez ho importuje tak importuje zavislosti toho importovvanyho modulu, a jelikoz jedna ze zavislosti by byla volajici modul, tak by to asi neslo.
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    Pavel Stárek avatar 2.7.2007 12:49 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Má pravdu, předsedo :-) Teď sem si to vyzkoušel v debuggeru odkrokovat a opravdu to takhle nejde, což mě tedy "příjemně" překvapilo. Takže odvolávám, co jsem napsal, měl jsem si to nejprve vyzkoušet, sypu si popel na hlavu.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    2.7.2007 13:34 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Python a volání fci mezi moduly
    Dá se udělat třeba tohle:
    Hlavní program:
    #!/usr/bin/env python
    def funkce(x):
        return x + 1
    
    import modul
    modul.callfunc(funkce, 5)
    
    Modul:
    #!/usr/bin/env python
    def callfunc(func, x):
        print func(x)
    
    Jestliže děláš nějaké numerické výpočty, tak se koukni na moduly scipy a numpy. Tam jsou callbacky celkem běžnou záležitostí.

    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.