Zanurkuj w Pythonie/Wprowadzanie do dialect.py: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
funkcja 'end_pre' wyglądała jakby była wewnątrz funkcji 'start_pre'
Beau (dyskusja | edycje)
drobne techniczne
Linia 8:
|8.17|Obsługa określonych znaczników
|tekst=
<source lang="python"> def start_pre(self, attrs): #(1)
self.verbatim += 1 #(2)
self.unknown_starttag("pre", attrs) #(3)
Linia 14:
def end_pre(self): #(4)
self.unknown_endtag("pre") #(5)
self.verbatim -= 1 #(6)</source>
 
# <code>start_pre</code> jest wywoływany za każdym razem, gdy <code>SGMLParser</code> znajdzie znacznik <tt><nowiki><pre></nowiki></tt> w źródle HTML-a. (Za chwilę zobaczymy dokładnie, jak to się dzieje.) Ta metoda przyjmuje jeden parametr: <code>attrs</code>, który zawiera atrybuty znacznika (jeśli jakieś są). <code>attrs</code> jest listą krotek postaci klucz/wartość, taką samą jaką przyjmuje <code>unknown_starttag</code>.
Linia 29:
|8.18|<code>SGMLParser</code>
|tekst=
<source lang="python"> def finish_starttag(self, tag, attrs): #(1)
try:
method = getattr(self, 'start_' + tag) #(2)
Linia 47:
def handle_starttag(self, tag, method, attrs):
method(attrs) #(8)</source>
 
# W tym momencie <code>SGMLParser</code> znalazł już początkowy znacznik i sparsował listę atrybutów. Ostatnia rzecz jaka została do zrobienia, to ustalenie czy istnieje specjalna metoda obsługi dla tego znacznika lub czy powinniśmy skorzystać z metody domyślnej (<code>unknown_starttag</code>).
Linia 64:
|8.19|Nadpisanie metody <code>handle_data</code>
|tekst=
<source lang="python"> def handle_data(self, text): #(1)
self.pieces.append(self.verbatim and text or self.process(text)) #(2)</source>
 
# Metoda <code>handle_data</code> jest wywoływana z tylko jednym argumentem, tekstem do przetworzenia.
Linia 77:
[[../Przetwarzanie HTML-a - wszystko razem|Wszystko razem]]|
}}
{{Podświetl|py}}</noinclude>