Méně známé skutečnosti o Pythonu: identifikátory se znaky mimo ASCII

Od Petr Zemek, 2014-06-22

Věděli jste, že od Pythonu verze 3 lze v identifikátorech používat i znaky mimo obvyklý rozsah [a-zA-Z0-9_]?

Skutečně. Od Pythonu 3 lze v identifikátorech používat i Unicode znaky, které jsou mimo tradiční rozsah z ASCII znakové sady. Dva jednodušší příklady na začátek:

>>> Σ = sum
>>> Σ([1, 2, 3, 4])
10
>>> π = 3.1415
>>> π
3.1415

Nelze sice používat úplně všechny Unicode znaky, ale i ono povolené množství (seznam pro Unicode 4.1) umožňuje psát programy, které jsou pro pro mnoho lidí naprosto nečitelné (zdroj):

def 陰陽():
 
    def 半陰陽(半徑,1,2):
 
        形狀(龜形);
        顏色(1,2); 開始填色();
        畫圓(半徑/2, 180); 畫圓(半徑, 180); 左轉(180); 畫圓(-半徑/2, 180);
        結束填色()
 
        左轉(90); 提筆(); 前進(半徑/3); 右轉(90); 下筆();
        顏色(2,1); 開始填色();
        畫圓(半徑/6);
        結束填色()
 
        左轉(90); 提筆(); 後退(半徑/3);左轉(90); 下筆();
 
    重設(); 半陰陽(200,,);  半陰陽(200,,);
 
    提筆();後退(200); 左轉(90); 後退(200);
    顏色();(ip.getsource(陰陽))
 
    進入主迴圈()
 
    return "完成!"

Samozřejmě, to, že Python něco takové podporuje ještě neznamená, že by se to mělo používat. Zmiňuji to spíše jako zajímavost.

Pokud by vás zajímaly detaily, tak mrkněte na PEP 3131 a do sekce Identifikátory a klíčová slova v referenční příručce k Python 3.

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtrované HTML (využíváno)

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <table>
  • Zvýraznění syntaxe kódu lze povolit přes následující značky: <code>, <blockcode>, <bash>, <c>, <cpp>, <haskell>, <html>, <java>, <javascript>, <latex>, <perl>, <php>, <python>, <ruby>, <rust>, <sql>, <text>, <vim>, <xml>, <yaml>.
  • Řádky a odstavce se zalomí automaticky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
CAPTCHA
14 + 1 =
Vyřešte tento jednoduchý matematický příklad a vložte výsledek. Např. pro 1+3 vložte 4.
Nějak se mi tady rozmohl spam, takže poprosím o ověření.