Питхон - ХТМЛ генератор, 2. део

Преглед садржаја
У првом делу нашег водича успели смо да учинимо да наш програм узме текстуалну датотеку и генерише блокове са параграфима које садржи, такође смо успели да га оспособимо за извоз онога што смо уградили у спољну датотеку.
Друга итерација
Као што смо рекли на почетку, морамо то учинити најмодуларнији програм а да бисмо то постигли морамо спровести своје објектно оријентисани код.
За ово морамо направити потребне апстракције како бисмо могли изградити класе које садрже методе које постижу наше циљеве.
Захтеви
Направимо списак компоненти које требамо изградити, са овим ћемо знати шта морамо имати како би наш програм био потпунији:
  • А. парсер, овај објекат ће нам омогућити читање текста и руковање осталим класама.
  • Правила, Направићемо правило за сваки тип блока, што ће нам омогућити да откријемо који тип блока имамо и који формат на њега треба да применимо.
  • Филтери, са њима ћемо уградити регуларне изразе да бисмо могли да рукујемо неким унутрашњим елементима.
  • Руковаоци, ове руковаоце ће користити парсер за генерисање обрађеног излаза. Сваки хандлер моћи ће да рукује различитим врстама ознака.
Хандлер
Ова класа ће нам омогућити да рукујемо одређеним врстама ознака за излазе, да видимо код који може да садржи:

Онда морамо изградити супер класу Руковаоци, то ће нам омогућити да управљамо различитим манипулатори које су нам потребне. За ово ћемо видети следећи код:
 цласс Хандлер: деф повратни позив (селф, префикс, име, * аргс): метход = гетаттр (селф, префик + наме, Ноне) ако се може позвати (метход): ретурн метход ( * аргс) деф старт (селф, наме): селф. повратни позив ('старт_', наме) деф енд (селф, наме): селф.цаллбацк ('енд_', наме) деф суб (селф, наме): деф субститутион (матцх): ресулт = селф.цаллбацк ('суб_', наме, матцх) дефаулт = матцх.гроуп (0) повратни резултат или подразумевана повратна замена 

Ако сада мало вежбамо, видећемо наш досадашњи напредак:
 >>> из руковатеља увоз ХТМЛРендерер >>> хандлер = ХТМЛРендерер () >>> увоз ре >>> ре.суб (р '\ * (. +?) \ *', хандлер.суб ('нагласак'), ' Ово * је * тест ')' Ово је доказ ' 

Као што видимо у претходном позиву, прво увозимо нашу класу ХТМЛРендерер шта је наше хандлер, затим увозимо ре помоћу којих ћемо руковати регуларним изразима, онда идемо на ре.суб израз и метод са којим га треба применити, затим текст и на крају видимо да је излаз генерисао потребан ХТМЛ код.
Правила
Када добијемо руковаоце, време је да направимо правила, они ће нам помоћи да одредимо одредиште различитим блоковима, међутим, оно мора бити објектно оријентисано како не бисмо завршили са великим бројем блокова угнежђено ако да потврди све случајеве.
Морамо имати и супер класу која управља нашим правилима, да видимо следећи код који садржи супер класу.
 класа Правило: деф ацтион (селф, блоцк, хандлер): хандлер.старт (селф.типе) хандлер.феед (блоцк) хандлер.енд (селф.типе) ретурн Труе 

Као што видимо метод поступак () прима блок и врсту руковаоца који мора да користи, са тим ће моћи да разликује који блок мора да примени на оно што прима по параметрима и тако финализује код који мора да се одштампа.
Овим завршавамо водич и остављамо свима да наставе док не припремимо пројекат према смерницама наведеним на почетку у првом делу овог водича.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave