pseudosugar

Breid Python uit met functionele programmeertaalfuncties
Download nu

pseudosugar Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • GPL
  • Prijs:
  • FREE
  • Naam uitgever:
  • Kai Zhu
  • Uitgever website:
  • http://www-rcf.usc.edu/~kaizhu/

pseudosugar Tags


pseudosugar Beschrijving

Python uitbreiden met functionele programmeertaalfuncties Pseudosugar is een pure Python-module die de volgende syntaxikels wordt toegevoegd: functie >> Functie -> Functie (AA, BB, CC, ...) XX .. Functie (AA, BB, CC) -> Functie (XX, AA, BB , CC) XX ... Functie (AA, BB, CC) -> Functie (AA, XX, BB, CC) XX .... Functie (AA, BB, CC) -> Functie (AA, BB, XX, CC) Demo-gebruik: >>> ## Start de interactieve console >>> van Pseudosugar Import * >>> Pseudo_Console (). Interactie () Python 3.1.1 (R311: 74480, Sep 132009, 17:17:12 ) op Linux2-type "Help", "Copyright", "Credits" of "Licentie" voor meer informatie. (PSeudo_Console) Pseudo_Importer - Haak toevoegen Naar Sys.Meta_Path >>> Van Pseudosugar Import * >>> #### Snelle voorbeelden >>> ## Prefix Operator >>> Print ## Postfix-operator >>> 'Hallo', 'Wereld' >>>> Printhello World >>> ## Pseudomethod >>> Def-functie (AA, BB, CC): Return (AA, BB, CC) >>> 1 (0, 0) >>>> Print (1, 0, 0) >>> 2 ... Functie (0) >>>> Print (0, 2, 0) >>> 3 .... Functie (0, 0) >>>> Afdrukken (0, 0, 3) >>> ## '' Converteert functies in postfix-operators >>> ## Het gedraagt zich bijna precies zoals '>>>>' behalve in omgekeerde volgorde> >> ## Het is handig om meerdere operators >>> 'QWERTY' >>>> Lijst >>>> gesorteerd >>>> DICT >>> afdrukken {0: 'e', 1: 'Q', 2: 'R', 3: 'T', 4: 'W', 5: 'Y'} >>> ## Operator Precedce >>> ## '>>>>' heeft hoger Operator-voorrang dan 'tuple) ## lijst (tuple (' abcd ')) >>> #### Pseudomethod Syntaxis >>> ## Dynamisch bindt Functie-oproepen naar objecten >>> ## Bind de functie Call Print () om te 'hallo' >>> PRI NT ('Hallo') Hallo >>> 'Hallo' ..Print () Hallo >>> 'Hallo' ..Print ('World') Hallo Wereld >>> 'Hallo' ..Print ('World', ' ! ') Hallo Wereld! >>>' Hallo '..Print (' World ','! ', bestand = Sys.stdout) Hallo World! >>> ## Maak een string pseudomethod die een uitroep of andere eindes toevoegen> >> Def Add_ding (Self, End = '!'): Return Self + End >>> 'Hallo' ..add_ding () ..Print () Hallo! >>> HELLO'.Upper () ..add_making ( ) ..Print () Hallo! >>> 'Hallo'.upper () ..add_ending (' World ') ..Print () Hallo Wereld >>>' Hallo'.Upper () ..add_making ('World' ). LOWER () ..PRINT () Hallo Wereld >>> 'Hallo'.Upper () ..add_ending (' World '). Lower () ..add_making ('! ') ..Print () Hallo World! >>> 'Hallo'.Upper () ..add_ding (' World '). Lower () ..add_ending ('! ') ..add_ding (END ='! ') ..Print () Hallo World !! >> ## Operator-voorrang >>> ## 'AA ..BB ()' heeft dezelfde exploitant voorrang als de attribuutoperator 'A.B' >>> DEF Toevoegen (AA, BB): RETURN AA + BB >> > Afdrukken (2 * 3 ..ADD (4) + 5 == 2 * (3 + 4) + 5) TRUE >>> Print (3 == 1 ..Aadd (2)) True >>> Print (0 , 0 ..add (1), 0) 01 0 >>> ## Breid de beperkte typen uit >>> ## Het type Python-code-object kan niet onderty worden ondertekend en accepteert ook geen enkele methode-binding. >>> ## Breid het uit door dynamisch bindende gewone functies. >>> ## Hier is een pseudomethod die een exemplaar van het type wordt gedemonteerd met een opgegeven uitvoer >>> Import DIS, IO, SYS >>> DEF Demonteer (Zelf, Bestand): ... backup_stdout = Sys.stdout ## back-up Sys.stdout ... probeer: ... Sys.stdout = bestand ... dis.dis (self) ## Demonteer zelf ... Retourbestand ... Eindelijk: ... Sys.stdout = backup_stdout ## Sys.stdout >>> Code_Source = 'Print ("Hallo")'; Code_Object = compileren (Code_Source, '', 'Exec'); Exec (Code_Object) Hallo >>> Code_Object ..Disassemble (bestand = io.stringio ()). GetValue () ..Print () 10 load_name 0 (print) 3 load_const 0 ('Hallo') 6 Call_Function 19 Pop_top 10 Load_const 1 (geen) 13 return_value >>> ## '...' en '....' Syntaxis >>> ## Soms willen we in plaats daarvan het 2e of 3e argument van een functie gebonden aan een object. >> > ## ... 'en' .... 'zal dit respectievelijk doen >>>' 2nd '... afdrukken (0, 0) 02e 0 >>>' 3rd '.... Afdrukken (0 , 0) 00 3RD >>> ## '....' is handig voor het keten van RE.SUB >>> SS = 'bestand = io.Stringio (); Afdrukken 1, 2, 3 >> -bestand; print file.getValue () '; Print (SS) -bestand = io.Stringio (); Afdrukken 1, 2, 3 >> -bestand; Print File.getValue () >>> Print (... Re.Sub ('Print (. *?) $', 'Print (\ 1)', ... Re.Sub ('Print (. *)> > (. *?); ',' Print (\ 1, bestand = \ 2); ', SS) ...) ...) Bestand = io.Stringio (); Afdrukken (1, 2, 3, bestand = bestand); Print (file.getValue ()) >>> SS .... Re.Sub ('Print (. *) >> (. *?);', 'Print (\ 1, bestand = \ 2);') ... .... Re.Sub ('Print (*?) $', 'Print (\ 1)') ... ..Print () bestand = io.Stringio (); Afdrukken (1, 2, 3, bestand = bestand); Print (bestand.GetValue ()) >>> ## In feite is een ander primair gebruik van pseudomethod om lelijke, moeilijk te lezen, lisp-achtige geneste functie-oproepen >>> af te drukken (DICT (opsommen (zip (' ABC ', gesorteerd (' ABC BCA CAB'.SPLIT (''), sleutel = lambda x: x ))))) {0: ('A', 'CAB'), 1: ('B' , 'ABC'), 2: ('C', 'BCA')} >>> 'ABC BCA CAB'.SPLIT (' ') ..Sorted (Key = lambda x: x ) ... rits ('ABC') ..Numeren () ..dict () ..Print () {0: ('A', 'CAB'), 1: ('B', 'ABC'), 2: ('C ',' BCA ')} >>> ## Import-modules geschreven met pseudomethod-syntaxis >>> ## Create Test_module.py >>> Open (' Test_module.py ',' W '). Schrijf (' "Hallo". .afdrukken() ') ..Print (' Bytes geschreven ') 18 bytes geschreven >>> ## Tijdens importeer, plaats het Magic Prefix' Pseudosugar '. Vóór de laatste module >>> ## importeren Pseudosugar.a >>> ## import a.pseudosugar.b >>> ## import a.b.pseudosugar.c >>> import pseudosugar.test_modulehello eisen: · Python


pseudosugar Gerelateerde software