Zanurkuj w Pythonie/Abstrakcyjne źródła wejścia: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
"Slashdot" odmienia się jak każde inne słowo
Beau (dyskusja | edycje)
sprzątanie kodu
Linia 1:
== Abstrakcyjne źródła wejścia ==
 
Jedną z najważniejszych możliwości Pythona jest jego dynamiczne wiązanie, a jednym z najbardziej przydatnych przykładów wykorzystania tego jest ''obiekt plikopodobny'' (ang. ''file-like object'').
 
Linia 139 ⟶ 138:
|10.6|<code>openAnything</code>
|tekst=
<source lang="python">
<pre>
def openAnything(source): #(1)
# próbuje otworzyć za pomocą urllib (jeśli source jest URL-em do http, ftp itp.)
Linia 157 ⟶ 156:
import StringIO
return StringIO.StringIO(str(source)) #(4)
</presource>
 
# Funkcja <code>openAnything</code> przyjmuje pojedynczy argument, <code>source</code>, i zwraca ''obiekt plikopodobny''. <code>source</code> jest łańcuchem znaków o różnym charakterze. Może się odnosić do adresu URL (np. <code><nowiki>'http://slashdot.org/slashdot.rdf'</nowiki></code>), może być globalną lub lokalną ścieżką do pliku (np. <code>'binary.xml'</code>), czy też łańcuchem znaków przechowującym dokument XML, który ma zostać sparsowany.
Linia 170 ⟶ 169:
|10.7|Wykorzystanie <code>openAnything</code> w {{Python/Src|kgp/kgp.py|kgp.py}}
|tekst=
<source lang="python">class KantGenerator:
<pre>
class KantGenerator:
def _load(self, source):
sock = toolbox.openAnything(source)
xmldoc = minidom.parse(sock).documentElement
sock.close()
return xmldoc</source>
</pre>
}}
 
Linia 184 ⟶ 181:
[[../Standardowy strumień wejścia, wyjścia i błędów/]]|
}}
{{Podświetl|py}}</noinclude>