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 14:44 | IT novinky

    Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 13:33 | IT novinky

    Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).

    Ladislav Hagara | Komentářů: 0
    10.8. 19:00 | IT novinky

    Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.

    Ladislav Hagara | Komentářů: 0
    10.8. 16:00 | IT novinky

    Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.

    Ladislav Hagara | Komentářů: 8
    10.8. 12:11 | Pozvánky

    V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »

    David Heidelberg | Komentářů: 0
    9.8. 17:22 | Nová verze

    Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s

    … více »
    Ladislav Hagara | Komentářů: 2
    9.8. 12:44 | Nová verze

    Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    8.8. 04:44 | IT novinky

    U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).

    Ladislav Hagara | Komentářů: 8
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2369 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Standardní knihovna pro Python - 1 (builtins)

    27. 2. 2006 | Jakub Matys | Programování | 9524×

    Vítám vás u nového seriálu, který by vás měl provést standardní knihovnou dodávanou k jazyku Python. Informace uvedené v článcích jsou aktuální pro Python v. 2.4. V dnešním díle začneme probírat vestavěné objekty, tzv. builtins.

    Většina programovacích jazyků používá jádro jazyka (všechna klíčová slova) a knihovny, které se starají o obtížnější nebo hardwarově závislé operace. Python není žádnou výjimkou. Vzhledem k tomu, že se jedná o interpretovaný jazyk, mohou být moduly napsány v Pythonu nebo v C. C verze mají určitě výkonnostní výhodu, protože jsou přeloženy přímo do binárního kódu a jsou spojeny rovnou s interpretem (tyto moduly jsou řešeny jako dynamické knihovny - .so).

    Aby programátor nemusel stále opisovat importní příkaz, jsou některé hojně používané objekty umístěny ve vestavěném modulu. Vestavěný modul se nazývá __builtins__. Abychom měli práci ještě více usnadněnou, jsou implicitně objekty z tohoto modulu nakopírovány do lokální množiny názvů. Nemusíme tedy u těchto objektů zadávat jmenný prostor. Místo __builtins__.int(x) můžeme zadat prostě int(x). Pojďme se tedy podívat na objekty modulu __builtins__.

    Modul __builtinst__

    __import__(name[,globals[,locals[,fromlist]]])

    Tuto funkci volá příkaz import při načítání nových modulů. Můžete ji samozřejmě použít ve svých funkcích všude tam, kde hodláte importovat nový modul. První argument představuje jméno načítaného modulu, globals a locals jsou slovníky obsahující globální a lokální proměnné. Parametr fromlist představuje seznam objektů vyjímaných z modulu (from xxx import neco). Poslední parametr by nás mohl trochu zmást. Mohli bychom si myslet, že po jeho zadání vrátí funkce pouze objekty toho názvu. Funkce však vrací stále objekt modulu. Porovnává ale klíče slovníku locals s hodnotami v fromlist. Samotné nakopírování do lokální množiny názvů je však na nás. Chceme-li například importovat funkci exit, musíme zadat:

    exit = __import__('sys', globals(), locals(), [exit]).exit

    Asi tuto funkci nebudete používat tímto způsobem, ale přes jednoduchý příkaz import. Ukazuje nám však (ona i jiné funkce z __builtins__), jak Python vnitřně funguje.

    abs(x)
    Funkce vrací absolutní hodnotu čísla předaného jako argument. Ten by měl být celým, celým dlouhým (LongType) nebo číslem s pohyblivou řádovou čárkou. Při předání komplexního čísla funkce pracuje standardně (abs(komplex) == math.sqrt(komplex.real ** 2 + komplex.imag ** 2)).
    basestring
    Tento objekt je mateřskou třídou pro řetězcové typy (str a unicode). Můžete pomocí něho testovat objekty, zda jsou jeho instancemi, tzn. řetězci: isinstance(obj, basestring).
    bool([x])
    Konvertuje předávanou hodnotu na typ BooleanType. Používá standardní konverzní scénáře. Pokud funkci nepředáme žádný argument vrací False.
    callable(object)
    Kontroluje, zda je objekt volatelný - vrací True, nebo ne - False (objekty metod a funkcí obsahují metodu __call__()). Nekontroluje, zda volání objektu neskončí s chybou. Třídy jsou také volatelnými typy - vracejí instanci sebe sama.
    chr(i)
    Funkce vrací ASCII znak, který odpovídá kódu i. Ten musí být v rozsahu 0 - 255, jinak bude vyvolána výjimka ValueError. Funkce je inverzní k funkci ord().
    classmethod(function)
    Vrací třídní metodu funkce function. Více o třídních metodách se dozvíte v Létajícím cirkusu č. 7 [root.cz]. Místo této funkce je možné použít tzv. dekorátory. Ty se uvádějí před metodou a vypadají např. takto @classmethod. O dekorátorech se více dozvíte v článku Nový chřestýš [root.cz].
    cmp(x, y)
    Porovnává předávané objekty a vrací celočíselnou hodnotu. Pokud je x < y, je vrácená hodnota záporná. Když se oba argumenty rovnají, vrací nulu a jestliže je x > y, předá kladné číslo.
    compile(string, filename, kind[, flags[, dont_inherit]])
    Předávaný řetězec je zkompilován do kódového objektu. Takovýto objekt je možné dále spouštět funkcemi exec() nebo eval(). filename představuje soubor, ze kterého je kód čten. Nemáme-li příkazy nikde uloženy můžeme, použít řetězec '<string>'. kind specifikuje, jaký druh kódu bude kompilován. Pokud se jedná o sled příkazů, předáme 'exec'. Jedná-li se o výraz, předáme 'eval'. A nakonec, pokud jde o jeden proveditelný příkaz, předáme 'single'. Kompilujeme-li několikařádkový kód, musí být konec řádku reprezentován '\n'. Jestliže váš systém používá '\r\n' (Windows), musíte toto nahradit, např. metodou replace() (to říká dokumentace, nezkoušel jsem).
    complex([real[, imag]])
    Funkce vytváří komplexní číslo ze zadaných parametrů. Může přejímat čísla nebo řetězec. Předáte-li řetězec jako první argument, bude interpretován jako komplexní číslo a druhý parametr nesmí být předán! Pokud není druhý argument předán (a první je číslo), je jeho hodnota nastavena na 0 a funkce funguje jako konverzní funkce. Pokud jsou oba parametry vynechány, vrací funkce 0j.
    delattr(object, name)
    Maže atribut name v objektu object. delattr(x, 'neco') je ekvivalentem del x.neco.
    dict([mapping-or-sequence])

    Vrací nový slovník vytvoření z argumentu(ů). Jestliže není žádný argument předán, vytvoří prázdný slovník. Předáte-li jako parametr mapovací objekt, vrátí slovník se stejným párováním (klíč -> hodnota). V ostatních případech musí být argument posloupnost, kontejner podporující iterátory nebo objekt iterátoru. Jednotlivé prvky parametru musí být stejných typů a obsahovat 2 objekty. Je-li některý klíč předán vícekrát, je v novém slovníku použita pouze jeho poslední hodnota. Můžete také kombinaci klíč->hodnota předat jako klíčové_slovo = hodnota (např. jedna=1).

    dict({'one': 2, 'two': 3})
    dict({'one': 2, 'two': 3}.items())
    dict({'one': 2, 'two': 3}.iteritems())
    dict(zip(('one', 'two'), (2, 3)))
    dict([['two', 3], ['one', 2]])
    dict(one=2, two=3)
    dict([(['one', 'two'][i-2], i) for i in (2, 3)])

    Všechny tyto příkazy jsou ekvivalentem k {"one": 2, "two": 3}.

           

    Hodnocení: 56 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    Marek Bernát avatar 27.2.2006 01:49 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Nie je dokumentácia k pythonu preložená v nejakej forme do češtiny? Resp., ľudia učiaci sa programovať nevedia po anglicky? Ak je odpoveď na obidve otázky nie, tak ešte stále nechápem, pre koho to má byť značne nedokonalý preklad manuálu určený.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    27.2.2006 09:14 ch-in-A | skóre: 13 | blog: Zapisky_silencovy | Praha
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    28.2.2006 11:46 Petr Mach
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Takový lepší překlad dokumentace k pythonu je kniha:

    David M. Beazley: Python

    Není tam všechno, chybí třeba XML, ale zase některé věci jsou vysvětlené lépe a s příklady.
    27.2.2006 09:23 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Výborný článek, možná by stálo za to zmínit, jak jsou objekty porovnvávány.
    Marek Bernát avatar 27.2.2006 10:28 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Stálo, ale to by to nesmel byť len obyčajný preklad manuálu, ale museli by byť pridané aj vlastné skúsenosti.

    Robí sa to definovaním porovnávacích funkcií v triede objektov. Viď dokumentácia a funkcie __cmp__, __gt__, __lt__ a ďalšie.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    27.2.2006 09:52 Jan Švec
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Vestavěný modul se nazývá __builtins__. Abychom měli práci ještě více usnadněnou, jsou implicitně objekty z tohoto modulu nakopírovány do lokální množiny názvů.

    Chyba lávky pane kolego, Python má tři obory názvů - lokální, globální a právě builtin, interní. K žádnému kopírování nedochází.

    Lokální obor jmen získáte pomocí locals(), globální pomocí globals() a builtin je jmenný prostor modulu __builtin__.

    Myslím si, že osobně bych za start pro takovou tour de Python nevybral ani za mák modul __builtins__, ale začal bych něčím užitečnějším s tím, že mnoho z těchto funkcí člověk pozná jaksi "mimochodem".
    27.2.2006 10:06 Jan Švec | skóre: 2 | blog: honzas | Plzeň
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    A navíc, název tohoto modulu není __builtins__ ale __builtin__. Viz Python Library Reference:

    As an implementation detail, most modules have the name __builtins__ (note the "s") made available as part of their globals. The value of __builtins__ is normally either this module or the value of this modules's __dict__ attribute. Since this is an implementation detail, it may not be used by alternate implementations of Python.

    Čili, pokud autor alespoň z rychlíku viděl Python, pak určitě zkusil následující:
    >>> import __builtins__
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    ImportError: No module named __builtins__
    >>>
    
    Zdálo by se, že jde o zbytečné bazírování, ale jak může o Pythonu psát někdo, kdo si ani uvedené příklady nevyzkouší. Sám osobně, když jsem psal Létající cirkus jsme se snažil co nejpečlivěji přečíst dokumentaci a následně z ní vyjmout to nejpodstatnější, nikoli doslova překládat z angličtiny. A to jsem tenkrát měl 18 let a znal Python půl roku.
    Marek Bernát avatar 27.2.2006 10:14 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Citujem vás:

    Myslím si, že osobně bych za start pro takovou tour de Python nevybral ani za mák modul __builtins__, ale začal bych něčím užitečnějším s tím, že mnoho z těchto funkcí člověk pozná jaksi "mimochodem".?

    Chápem, že ste sa aj vy možno nechali uniesť, ale "copak může o Pythonu psát někdo, kto si ani uvedené příklady nevyskouší" ;-)
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Marek Bernát avatar 27.2.2006 10:16 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Zdálo by se, že jde o zbytečné bazírování, ale jak může o Pythonu psát někdo, kdo si ani uvedené příklady nevyzkouší. Sám osobně, když jsem psal Létající cirkus jsme se snažil co nejpečlivěji přečíst dokumentaci a následně z ní vyjmout to nejpodstatnější, nikoli doslova překládat z angličtiny. A to jsem tenkrát měl 18 let a znal Python půl roku.

    Presne tak. Ak má ísť o užitočný autorský výtvor, tak zmetené preklady manuálu rozhodne nie sú tou správnou cestou.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Marek Bernát avatar 27.2.2006 10:12 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 1 (builtins)
    Tak veru. Keby išlo len o "usnadněnou práci", tak by stačilo dať do site-packages import __builtin__.

    Navyše, zišlo by sa zmieniť, čo sa stane pri predefinovaní builtin funkcií a podobne. Takto mi nie je jasné, o čo autorovi týmto článkom išlo.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

    Založit nové vláknoNahoru

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