[python] Buducnost Pythonu: lambda, map, filter

Jan Janech devel na atlas.sk
Úterý Listopad 14 11:24:59 CET 2006


Roman Miklos wrote:
> for line in file('data.txt'):
>      print line
> 
> Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani 
> otvarat/zatvarat file. 
> Len neviem ako to funguje. Nie je to nahodou to iste ako 
> 
> f = open("data.txt")
> for line in f.readlines():
>      print line
> f.close()
> 
> t. j., ze vsetky riadky sa nacitaju naraz do zoznamu a potom sa cez ten 
> zoznam iteruje? 
> To by bolo potom z hladiska vyuzitia pamati nieco uplne ine ako ten 
> priklad co som uviedol dole, 
> kde citam subor riadok po riadku.

Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda 
next() file objectu vola priamo Cckova fcia readahead_get_line_skip, 
ktora nacita riadok.

Co sa tyka otvarania suboru, open je len alias na file, takze otvarat ho 
treba :)

A co sa tyka zatvarania suboru (tiez som pozeral v zdrojakoch - pre 
istotu), ked zrusis referenciu na subor, tak sa automaticky zavrie.
Teda:

f = open("data.txt")
del f

a

f = open("data.txt")
f.close()

spravia to iste: zavru subor.


Další informace o konferenci Python