Zemřel průkopník videoherní hudby Bobby Prince (Wikipedie). Složil hudbu pro hry Wolfenstein 3D, Doom, Doom II, Duke Nukem II a Duke Nukem 3D.
Počítačová hra Operace Flashpoint (Arma: Cold War Assault) od společnosti Bohemia Interactive slaví 25 let. Při této příležitosti bylo publikováno bezplatné hratelné Arma: Cold War Assault Remastered Demo a na GitHubu byly zveřejněny zdrojové kódy.
Na trh v České republice přichází HP EliteBoard G1a. Jde o plnohodnotný AI počítač integrovaný přímo do těla klávesnice, tedy zařízení, které na první pohled vypadá jako minimalistická klávesnice, ale ve skutečnosti nahrazuje klasickou počítačovou jednotku.
V lednu bylo oznámeno, že desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. O víkendu byla vydána první preview verze.
Minulý týden byl oficiálně vydán Android 17. Detaily na blogu a stránkách věnovaných vývojářům.
Dnes jde do prodeje zařízení Steam Machine. Steam Machine 512 GB za 1 039 EUR a Steam Machine 2 TB za 1 359 EUR. Do čtvrtka 25. června do 19:00 se lze zapsat na seznamy. Ty budou jednorázově náhodně slosovány, čímž bude určeno pořadí rezervací a čekacích listin.
Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.51.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek v oznámení o vydání a také na YouTube a PeerTube.
Byla vydána nová verze 2026.3.0 "Carousels & Killer Whales" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu.
Tento týden (24. a 27. června) vyprší platnost Microsoft certifikátu v UEFI vydaných v roce 2011. Nové certifikáty byly vydány v roce 2023. Kdo na počítačích, i virtuálních, používá zabezpečené spouštění (Secure Boot), měl by si ověřit, že má certifikáty aktualizovány, viz např. články na Red Hat nebo Fedora. Pro stávající systémy se nic nemění. Nadále se budou normálně spouštět. Zavaděče podepsané pouze klíčem z 2023 se ale na počítačích s pouze certifikátem 2011 nespustí. Ve Fedoře je zavaděč shim ve verzi 16.1-6 podepsán klíči 2011 i 2023.
Uživatelé mobilních telefonů s Linuxem si nyní mohou nainstalovat aplikaci Mobilní Datovka. Díky tomu je přístup k datovým schránkám dostupný i na zařízeních s mobilními linuxovými distribucemi, jako jsou například Mobian, NixOS Mobile, pmOS atd. Aplikace je dostupná na Flathubu.
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__.
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.
name v objektu object.
delattr(x, 'neco') je ekvivalentem del x.neco.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}.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
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".
__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.
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.