8.5. Python

Python er et fortolket objektorienteret sprog, der byder på flere spændende koncepter. En genial ide, som man enten hader eller elsker, er, at koden struktureres ved hjælp af indrykningen frem for tuborg-klammer som i C (og C++ og Perl).

I C ville man skrive sådan her:


int i = 0;

while (i != 256) {
    printf("%d\n", i);
    i++;
}

I Python ser det sådan ud:


i = 0

while (i != 256):
    print i
    i = i + 1

På den måde umuliggøres denne fejl, som ofte ses i C-kode:


/* forkert, uendelig løkke! */

int i = 0;

while (i != 256)
    printf("%d\n", i);
    i++;

Hvorfor bliver i ikke talt op? Linjen "i++" er slet ikke med i løkken, men indrykningen snyder! Hvis den virkelige struktur skulle fremgå af indrykningen, skulle der stå:


int i = 0;

while (i != 256)
    printf("%d\n", i);
i++;

I Python er indrykningen lig med strukturen, man kunne faktisk fristes til at kalde det "What You See Is What You Get"-kode. Her er et eksempel klippet ud af et større program:


# check the command line syntax
for arg in sys.argv[1:]
    if arg[0] == '-': # only check switches
        if arg[1:] not in switch_funcs.keys():
            print "Invalid parameter: ", arg
            sys.exit(1)

Python er i lighed med Perl et fortolket sprog, og hastigheden er bestemt ikke et af Pythons fortrin. Til gengæld er det forholdsvis nemt at lave udvidelser i C eller C++, der så kan bruges til de dele af et program, der udgør en hastighedsmæssig flaskehals. Python-fortolkeren kan også indlejres i andre programmer, hvorved du kan stille et fuldt programmeringssprog til rådighed for brugerne af programmet.

Til at konstruere grafiske brugergrænseflader bruges i Python normalt et modul kaldet Tkinter, der er en grænseflade til det ovenfor nævnte Tk. Med mindre du bruger specielle Linux-faciliteter, kan Python-programmer med eller uden Tkinter også køres under andre styresystemer - f.eks. Windows NT.

Læs mere om Python på http://www.python.org/