klevas.mif.vu.lttomukas/Knygos/winapi/... · hWnd, reinterpret_cast
Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4...
Transcript of Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4...
![Page 1: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/1.jpg)
Informatika II
Tomas Plankis
2012
![Page 2: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/2.jpg)
Objektiškai orientuotas programavimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
2 / 259
![Page 3: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/3.jpg)
OOP
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
3 / 259
Objektiškai orientuotas programavimas (angl. Object-OrientedProgramming) tai programavimo paradigma, kompiuteriniu programuarchitekturoje naudojanti objektus ir ju sąveikas.
![Page 4: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/4.jpg)
Pagrindines koncepcijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
4 / 259
■ Klase - aprašas, nusakantis tam tikro tipo objektu duomenustrukturą ir ju valdymo taisykles.
■ Objektas - unikalus duomenu rinkinys, atitinkantis to objektoklaseje aprašytą strukturą. Galima vadinti klases egzemplioriumi(angl. instance).
■ Metodas - objekto valdymo taisykle (funkcija).■ Abstrakcija - galimybe programuoti nežinant konkrečiu detaliu
apie realizaciją.■ Inkapsuliacija (informacijos slepimas) - užtikrina, kad objekto
naudotojas negali pakeisti objekto busenos nenumatytu budu.■ Polimorfizmas - objekto elgsena priklausanti nuo jo klases.■ Paveldejimas - viena klase yra yra kitos klases išpletimas.
![Page 5: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/5.jpg)
Klase
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
5 / 259
Klase iš esmes yra naudotojo apibrežtas duomenu tipas, leidžiantiskurti šio duomenu tipo objektus.
![Page 6: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/6.jpg)
Klasiu savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
6 / 259
■ Klases objektas iškviečiamas taip, tarsi tai butu funkcija.■ Objekto tipas yra klase.■ Klase turi atributus (požymius).■ Atributai skirstomi i deskriptorius (iskaitant funkcijas) arba
duomenu objektus.■ Atributas susietas su funkcija yra vadinamas metodu.■ Metodas gali buti specialus, pradedamas ir pabaigiamas su dviem
pabraukimais. Pitonas automatiškai iškviečia tokius metodus, jeiklase juos turi, kuomet atliekamos ivairios operacijos su tos klasesobjektais.
■ Klase gali paveldeti (ang. inherit) iš kitu klasiu, tai reiškia, kad jigali perduoti (angl. delegate kitai klasei atributu paiešką, jei jienerandami toje pačioje klaseje.
![Page 7: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/7.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
7 / 259
c l a s s Klases−pavad in imas ( v i r s k l a s i a i ) :s a k i n i a i
![Page 8: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/8.jpg)
Pastabos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
8 / 259
■ Klases-pavadinimas yra identifikatorius, kuris susiejamas su klasesobjektu
■ virsklasiai yra kableliu atskiriamas klasiu sąrašas. Dažnaiivardinamos kaip:
◆ Bazes (angl. bases)◆ Superklases (angl. superclasses)◆ Tevines klases (angl. parents)
■ Sakoma, kad kuriama klase :
◆ paveldi (angl. inherit)◆ išvedama (angl. derive)◆ išplečia (angl. extend)◆ paveldi (angl. subclass)
■ Visos klases išskyrus vieną yra poklasiai klases object■ Paveldejimas yra tranzityvus, t.y., jei C1 -> C2, C2 -> C3, tai C1
-> C3
![Page 9: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/9.jpg)
Objektas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
9 / 259
Objektas (angl. instance) sukuriamas kviečiant klasę kaip funkciją.Metodas isinstance(O, K) patikrina ar O yra klases K arba bet kuriojos poklasio objektas.
o b j e k t a s = Kla se ( )
![Page 10: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/10.jpg)
Atributai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
10 / 259
Kuomet sukuriams objektas, jo atributai pasiekiami taško "."pagalba. Objekto atributai gali buti apibrežti išreikštiniu budu:
>>> c l a s s C( ob j e c t ) :. . . pass
>>> z = C()>>> z . x = 1>>> z . x1
![Page 11: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/11.jpg)
__init__
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
11 / 259
Kuomet klaseje yra apibrežtas metodas __init__, kuriant objektą jisyra iškviečiamas pagal nutylejimą tam, kad butu atliekamas objektuibudingas inicializavimas. Perduodami parametrai turi atitiktiapibrežtus metode:
>>> c l a s s Kla se ( o b j e c t ) :. . . def __init__( s e l f , n ) :. . . s e l f . x = n
>>> ob j e k t a s = Kla se (50)
![Page 12: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/12.jpg)
Pastabos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
12 / 259
■ Kadangi __init__ metodas inicializuoja atributus, jis neturigrąžinti reikšmes, priešingu atveju gausime klaidą TypeError.
■ Rekomenduojama naudoti __init__ metodą atributuinicializavimui, nors tai ir nera butina.
■ Jei metodo __init__ nera, objektas kuriamas be jam budinguatributu.
![Page 13: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/13.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
13 / 259
>>> c l a s s Taskas ( o b j e c t ) :. . . x = 0. . . y = x. . . def spausd inkX ( s e l f ) :. . . pr in t ( s e l f . x )
>>> Taskas .__name__’ Taskas ’
>>> Taskas .__base__<c l a s s ’ o b j e c t ’>>>> Taskas . __dict__d ic t_proxy ({ ’__module__ ’ : ’__main__ ’ , ’__dict__ ’ : . .>>> c = C( )>>> c . spausd inkX ( )0
![Page 14: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/14.jpg)
Privatus kintamieji
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
14 / 259
Privatus kintamasis yra toks, kuris naudojamas tik klases viduje irnera pasiekiamas "iš išores". Pitonas šią koncepciją igyvendina taip:jei identifikatorius prasideda su dviem pabraukimais - __pav, tuometinterpretatorius automatiškai prideda klases vardą -_klases_vardas__pav.
![Page 15: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/15.jpg)
Pavyzdys I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
15 / 259
>>> c l a s s Taskas :. . . __x = 0. . . def p ( s e l f ) :. . . pr in t ( s e l f .__x)
>>> t=Taskas ( )>>> t . p ( )0>>> t .__x = 5>>> t . p ( )0>>> pr in t ( t .__x)5>>> t . __dict__{ ’__x ’ : 5}>>> Taskas . __dict__d ic t_proxy ( . . . ’_Taskas__x ’ : 0 , . . . )
![Page 16: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/16.jpg)
Pavyzdys II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
16 / 259
>>> c l a s s Taskas :. . . __x = 0. . . def p ( s e l f ) :. . . pr in t ( s e l f .__x). . . s e l f .__x += 1. . .
>>> t = Taskas ( )>>> t . p ( )0>>> t . p ( )1>>> t . p ( )2
![Page 17: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/17.jpg)
Klases dokumentacines eilutes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
17 / 259
Jei pirma eilute klaseje yra simboliu eilute, tuomet ši eilute yrasusiejama su dokumentaciniu klases atributu __doc__
![Page 18: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/18.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
18 / 259
>>> c l a s s Taskas :. . . ’ S i k l a s e naudojama a p r a s y t i t a s k u i ’. . .
>>> Taskas .__doc__’ S i k l a s e naudojama a p r a s y t i t a s k u i ’
![Page 19: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/19.jpg)
Deskriptorius
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
19 / 259
Taip vadinamas bet koks naujo stiliaus objektas, kurio klase turi bentvieną iš specialiu metodu __get__, __set__, __delete__. Jeiapibrežti du metodai __get__ ir __set__, tuomet objektasvadinamas duomenu deskriptoriumi.
![Page 20: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/20.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
20 / 259
c l a s s De s k r i p t o r i u s ( o b j e c t ) :def __init__( s e l f ) :
s e l f ._name = ’ ’def __get__( s e l f , i n s t a n c e , owner ) :
pr in t ( " Ge t t i n g : %s " % s e l f ._name)return s e l f ._name
def __set__( s e l f , i n s t a n c e , name ) :pr in t ( " S e t t i n g : %s " % name )s e l f ._name = name . t i t l e ( )
def __delete__( s e l f , i n s t a n c e ) :pr in t ( " De l e t i n g : %s " %s e l f ._name)del s e l f ._name
c l a s s Testas ( o b j e c t ) :x = D e s k r i p t o r i u s ( )
![Page 21: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/21.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
21 / 259
>>> a = C()>>> a . c = ’ j o n a s ’S e t t i n g : j o n a s>>> a . cGe t t i n g : Jonas’ Jonas ’
>>> del ( a . c )De l e t i n g : Jonas
![Page 22: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/22.jpg)
Gamybine funkcija (angl. factory-function)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
22 / 259
Tai programos projektavimo budas, kuomet funkcija grąžina reikiamosklases objektą.
c l a s s S p e c i a l u s A t v e j i s ( o b j e c t ) :def metodas ( s e l f ) :pr in t ( " s p e c i a l u s " )
c l a s s Norma l u sA t v e j i s ( o b j e c t ) :def metodas ( s e l f ) :pr in t ( " norma lus " )
def t i n k ama sA t v e j i s ( ar_normalus=True ) :i f ar_normalus :
return Norma l u sA t v e j i s ( )e l s e :
return S p e c i a l u s A t v e j i s ( )>>> ob j e k t a s = t i n k ama sA t v e j i s ( ar_normalus=Fa l s e )>>> ob j e k t a s . metodas ( )" s p e c i a l u s "
![Page 23: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/23.jpg)
__new__
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
23 / 259
Naujojo tipo klases turi statini metodą __new__, kuris yraiškviečiamas iškviečiant konstruktoriu Klase(*args, **kwds). Kuometiškviečiame konstruktoriu, Pitonas iš pradžiu iškviečia metodą__new__, o po to ir __init__, jei sukonstruotas objektaspriklauso klasei Klase arba jos poklasiams.
![Page 24: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/24.jpg)
Statinis metodas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
24 / 259
Statinis metodas yra toks metodas, kuri galima iškviesti ne tikobjekto, bet ir klases pagalba. Statinis metodas apibrežiamasfunkcijos staticmethod() pagalba (nebutinai pačiame klases apraše).
c l a s s Kla se ( o b j e c t ) :def s t a t i n i s ( ) :
pr in t ( ’ s t a t i n i s metodas ’ )s t a t i n i s = s t a t i cme thod ( s t a t i n i s )
#nuo 3 v e r s i j o s n ebu t i n a sob j e k t a s = Kla se ( )K la se . s t a t i n i s ( )# at sp au sd i n a : s t a t i n i s metodasob j e k t a s . s t a t i n i s ( )# at sp au sd i n a : s t a t i n i s metodas
![Page 25: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/25.jpg)
Klases metodas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
25 / 259
Klases metodas yra toks metodas, kuri galima iškviesti ne tik objekto,bet ir klases pagalba ir yra susietas su pačia klase. Klases metodasapibrežiamas funkcijos classmethod() pagalba. Pirmasis metodoargumentas yra cls.
![Page 26: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/26.jpg)
Klases metodas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
26 / 259
c l a s s Kla se ( o b j e c t ) :def k l a s i n i s ( c l s ) :
pr in t ( c l s .__name__, ’ k l a s i n i s metodas ’ )k l a s i n i s = c l a s smethod ( k l a s i n i s )
#nuo 3 v e r s i j o s n ebu t i n a sc l a s s Nau jaK la se ( K la se ) :
pass
ob j e k t a s 1 = Kla se ( )o b j e k t a s 2 = Nau jaK la se ( )K la se . k l a s i n i s ( )# at sp au sd i n a : K la se k l a s i n i s metodasob j e k t a s 1 . k l a s i n i s ( )# at sp au sd i n a : K la se k l a s i n i s metodasNau jaK la se . k l a s i n i s ( )# at sp au sd i n a : Nau jaK la se k l a s i n i s metodasob j e k t a s 2 . k l a s i n i s ( )# at sp au sd i n a : Nau jaK la se k l a s i n i s metodas
![Page 27: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/27.jpg)
Susietieji metodai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
27 / 259
Gilinantis i Pitono programavimo kalbą galima aptikti tokias sąvokaskaip susietieji (angl. bound) ir nesusietieji (angl. unbound) metodai.Iš esmes susietasis metodas yra toks, kuris yra susietas su objektu(štai iš kur atsiranda self ). Ir kai kreipiamasi i metodą, jis iš pradžiukreipiasi i tą objektą, kuris ji iškviete.
![Page 28: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/28.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
28 / 259
def make_adder_as_closure ( augend ) :def add ( addend , _augend=augend ) :
return addend+_augendreturn add
def make_adder_as_bound_method( augend ) :c l a s s Adder ( o b j e c t ) :
def _ _init_ _( s e l f , augend ) :s e l f . augend = augend
def add ( s e l f , addend ) :return addend+s e l f . augend
return Adder ( augend ) . add
![Page 29: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/29.jpg)
Paveldejimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
29 / 259
Paveldejimas tai egzistuojančios klases atributu pakartotinispanaudojimas.
![Page 30: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/30.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
30 / 259
>>> c l a s s Taskas ( o b j e c t ) :. . . def __init__( s e l f ) :. . . s e l f . x=0. . . s e l f . y=0. . . def p ( s e l f ) :. . . pr in t ( s e l f . x , s e l f . y )
>>> c l a s s Atkarpa ( Taskas ) :. . . def __init__( s e l f ) :. . . Taskas . __init__( s e l f ). . . s e l f . r=1. . . def ats tumas ( s e l f ) :. . . pr in t ( s e l f . x+s e l f . r , s e l f . y )
>>> a=Atkarpa ( )>>> a . p ( )0 0>>> a . ats tumas ( )1 0
![Page 31: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/31.jpg)
Daugialypis paveldejimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
31 / 259
![Page 32: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/32.jpg)
super
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
32 / 259
Tai raktažodis, leidžiantis kreiptis i tevinę klasę neišreikštiniu budu
![Page 33: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/33.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
33 / 259
c l a s s A( ob j e c t ) :def met ( s e l f ) :
pr in t ( ’A . met ’ )c l a s s B(A) :
def met ( s e l f ) :pr in t ( ’B . met ’ )supe r (B, s e l f ) . met ( )
c l a s s C(A) :def met ( s e l f ) :
pr in t ( ’C . met ’ )supe r (C , s e l f ) . met ( )
c l a s s D(B,C ) :def met ( s e l f ) :
pr in t ( ’D. met ’ )supe r (D, s e l f ) . met ( )
![Page 34: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/34.jpg)
Polimorfizmas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
34 / 259
Polimorfizmas - tai galimybe kurti kintamuosius, funkcijas arobjektus, turinčius daugiau nei vieną pavidalą, bet naudojamus tokiupačiu budu.
![Page 35: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/35.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
35 / 259
c l a s s Mai s ta s ( o b j e c t ) :def __init__( s e l f , pavad in imas , k a l o r i j o s ) :
s e l f . name = pavad in imass e l f . c a l o r i e s = k a l o r i j o s
def s k o n i s ( s e l f ) :r a i s e Not ImplementedExcept ion ( " P o k l a s i a i \
a t s a k i n g i uz s i o metodo r e a l i z a v i m a " )
c l a s s Hamburger i s ( Ma i s ta s ) :def s k o n i s ( s e l f ) :
return " b e s k on i s "
c l a s s V i s t i e n o s P y r a g e l i s ( Ma i s ta s ) :def s k o n i s ( s e l f ) :
return " s k o n i s k a i p v i s t i e n o s "
![Page 36: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/36.jpg)
Metodu perrašymas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
36 / 259
Metodu perrašymas tai to paties metodo pavadinimo panaudojimassu skirtingu parametru rinkiniu. Pavyzdžiui:
def s p au sd i n k ( s e l f ) :pr in t ( ’ kuku ’ )
def s p au sd i n k ( s e l f , t e k s t a s ) :pr in t ( t e k s t a s )
Pitonas tokios galimybes nepalaiko! Tą galima igyvendintiperduodant parametru rinkini. Pavyzdžiui:
def s p au sd i n k ( s e l f , ∗ a rgumenta i ) :. . .
![Page 37: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/37.jpg)
Savybes (angl. Properties)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
37 / 259
Itaisytasis deskriptorius su specialiomis galimybemis - iškviesti objektometodus kaip argumentus.
![Page 38: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/38.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
38 / 259
c l a s s Stac i a kamp i s ( o b j e c t ) :def __init__( s e l f , p l o t i s , a u k s t i s ) :
s e l f . p l o t i s = p l o t i ss e l f . a u k s t i s = a u k s t i s
def g e tP l o t a s ( s e l f ) :return s e l f . p l o t i s ∗ s e l f . a u k s t i s
p l o t a s = p r op e r t y ( g e tP l o t a s ,doc=’ s t a c i a k amp i o p l o t a s ’ )
>>> s=Stac i a kamp i s (5 , 5)>>> s . p l o t a s25>>> s . p l o t i s =4>>> s . p l o t a s20
![Page 39: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/39.jpg)
Savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
39 / 259
■ Savybes yra tik skaitomos■ Naudingos kaip viešoji sąsaja■ Yra paveldimos, bet metodai, i kuriuos kreipiasi, priklauso tik tai
pačiai klasei, kurioje savybes aprašytos
![Page 40: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/40.jpg)
Pavyzdys I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
40 / 259
c l a s s B( ob j e c t ) :def f ( s e l f ) : return 23g = p r op e r t y ( f )
c l a s s C(B ) :def f ( s e l f ) : return 42
c = C( )pr in t c . g # spau sd i n a 23
![Page 41: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/41.jpg)
Pavyzdys II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
41 / 259
O čia pavyzdys, kaip "apeiti" ribojimą:
c l a s s B( ob j e c t ) :def f ( s e l f ) : return 23def _f_getter ( s e l f ) : return s e l f . f ( )g = p r op e r t y ( _f_getter )
c l a s s C(B ) :def f ( s e l f ) : return 42
c = C( )pr in t c . g # spau sd i n a 42
![Page 42: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/42.jpg)
__slots__
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
42 / 259
■ Šis atributas pilnai pakeičia standartini klases atributą__dict__.
■ Jis apibrežia baigtinę atributu aibę.■ Leidžia išsaugoti šiek tiek atminties.■ Neleidžia sukurti nauju atributu.
![Page 43: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/43.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
43 / 259
c l a s s Opt im i zuo t a sS t a c i a k amp i s ( S ta c i a kamp i s ) :__slots__ = ( ’ p l o t i s ’ , ’ i l g i s ’ )
>>> t = T()>>> t . p l o t i s = 1>>> t . x = 1Traceback ( most r e c e n t c a l l l a s t ) :
F i l e "<s t d i n >" , l i n e 1 , in <module>A t t r i b u t e E r r o r : ’T ’ o b j e c t has no a t t r i b u t e ’ x ’
![Page 44: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/44.jpg)
Specialus metodai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
44 / 259
Klase gali tureti arba paveldeti specialius metodus (kurie prasideda irbaigiasi dvigubu pabraukimu). Pitonas automatiškai iškviečiaatitinkamą specialu metodą, kai atliekamos susijusios operacijos.Toliau aptarsime kai kurias šiu metodu savybes.
![Page 45: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/45.jpg)
Savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
45 / 259
■ x.__pavadinimas__() iš esmes ekvivalentusx.__class__.__pavadinimas__(x, )
■ Bendrieji metodai■ Specialus metodai
![Page 46: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/46.jpg)
Bendrieji metodai I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
46 / 259
■ __call__ - objektas iškviečiamas kaip funkcija, jei turi ši metodą
■ __cmp__ - jei konkretus specialusis metodas (pavyzdžiui,__lt__ ar __gt__) neegzistuoja arba grąžina klaidąNonImplemented, iškviečiamas šis objektu palyginimuitarpusavyje. Jei šio metodo nera, eiliškumo operatoriai (<, <=,>, >=) grąžins klaidos pranešimą. Lygybes operatoriai tikrinstapatybę, t.y. x == y id(x) == id (y)
■ __del__ - objektu naikinimas (tik esant poreikiui)■ __delattr__ - objekto atributo naikinimas■ __lt__, __le__, __gt__, __ge__, __eq__, __ne__ -
objektu palyginimas tarpusavyje (<, <=, >, >=, ==, !=)■ __getattr__ - jei objekto atributo nepavyko rasti normaliu budu
(x.__dict__ arba x.__class__ ), tuomet kviečiamas šisatributas x.__getattr__(’y’)
![Page 47: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/47.jpg)
Bendrieji metodai II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
47 / 259
■ __getattribute__ - jei objektas yra naujojo stiliaus klases,kiekvienas kreipinys i atributą x.y yra keičiamasx.__getattribute__(’y’)
■ __hash__ - naudoja objektą kaip žodyno raktą (grąžina 32 bituint)
■ __init__ - Kai kviečiamas konstruktorius C(), objektasinicializuojamas kviečiant ši metodą. Tevine klase nerainicializuojama, todel reikia tą nurodyti išreikštiniu budu -super(C, self).__init__()
■ __new__ - (naujo stiliaus klasems) objekto inicializavimas. Šismetodas iš esmes yra statinis ir gali grąžinti nebutinai klases Cobjektą. Rekomenduojama daugiau naudoti __init__
■ __nonzero__ - objektas ivertinamas loginiame kontekste (True,False). Jei šis metodas neegzistuoja, kviečiamas __len__ (Falseatitinka 0). Rekomenduojama naudoti if talpykla: vietoje iflen(talpykla) > 0:
![Page 48: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/48.jpg)
Bendrieji metodai III
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
48 / 259
■ __repr__ - objekto atvaizdavimas simboline eilute. Jei šismetodas neapibrežtas, Pitonas naudoja numatytąją simbolinęišraišką.
■ __setattr__ - atributo priskyrimas objektui. Kviečiamaspriskyrimo metu (dažniausiai): x.y = reikšme. Modifikuoja__dict__ tiesiogiai - x.__dict__[’y’] = reikšme
■ __str__ - objekto atvaizdavimas neoficialia glausta simbolineeilute. Jei šio metodo nera, kviečiamas __repr__
■ __unicode__ - objekto atvaizdavimas simboline eilute kaip ir__str__ atveju. Šiam metodui teikiama pirmenybe
![Page 49: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/49.jpg)
Specialus metodai darbui su talpyklomis (angl.container)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
49 / 259
■ __contains__ - patikrina, ar seka turi elementą - y in x■ __delitem__ - ištrina sekos (seka negali buti fiksuota) elementą■ __getitem__ - grąžina sekos elementą x[key]■ __iter__ - objekto iteratorius grąžinamas, pavyzdžiui, tokiais
atvejais: for elementas in x■ __len__ - grąžina elementu skaičiu konteineryje. Visi
konteineriai turetu tureti šią funkciją, nebent ji butu labai"brangi"
■ __setitem__ - patalpina elementą i seką (x[key] = y). Sekanegali buti fiksuota
![Page 50: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/50.jpg)
Specialus metodai skaitiniams objektams I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
50 / 259
■ __abs__, __invert__, __neg__, __pos__ - kviečiamiunariniu operatoriu: abs(x), x, -x, +x
■ __add__, __div__, __floordiv__, __mod__, __mul__,__sub__, __truediv__ - operatoriai x+y, x/y, x//y, x%y, x*y,x-y, x/y
■ __and__, __lshift__, __or__, __rshift__, __xor__ -operatoriai x&y, x«y, x|y, x»y, xy
■ __coerce__ - skaitiniu operaciju metu šis metodas paverčia x iry tipus priimtinais. Uždraustas. Naudojamas tik suderinamumo susenesnemis versijomis tikslu.
■ __complex__, __float__, __int__, __long__ - itaisytiejitipai. complex(x), float(x), int(x), long(x)
■ __divmod__ - divmod(x, y) grąžina porą (dalmuo, liekana)■ __hex__, __oct__ - hex(x), oct(x) - grąžina simbolinę
išraišką atitinkamoje skaičiavimo sistemoje
![Page 51: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/51.jpg)
Specialus metodai skaitiniams objektams II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
51 / 259
■ __iadd__, __idiv__, __ifloordiv__, __imod__,__imul__, __isub__, __itruediv__ - x+=y, x/=y,x//=y%=y, x*=y, x-=y, x/=y
■ __iand__, __ilshift__, __ior__, __irshift__, __ixor__- x& =y, x«=y, x|=y, x»=y, x=y
■ __ipow__ - x**=y■ __pow__ - x**y■ __radd__, __rdiv__, __rmod__, __rmul__, __rsub__
- kviečiami, jei y neturi tokiu operaciju y+x, y/x, y%y, y*x, y-x■ __rand__, __rlshift__, __ror__, __rrshift__, __rxor__
- panašiai, kaip ir anksčiau minetu atveju■ __rdivmod__ - panaš.■ __rpow__ - panaš.
![Page 52: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/52.jpg)
Dekoratoriai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
52 / 259
Dekoratorius - tai funkcijos perrašymo budas.
![Page 53: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/53.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
53 / 259
def f ( c l s , . . . ) :. . . kodas . . .
f = c l a s smethod ( f )
@c lassmethod def f ( c l s , . . . ) :. . . kodas . . .
![Page 54: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/54.jpg)
Savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
54 / 259
■ Po dekoratoriaus iš karto turi buti apibrežiama funkcija■ Dekoratoriu galima susikurti patiems■ Dekoratoriaus kvietimas suletina funkcijos iškvietimą■ Piktnaudžiavimas jais gali padaryti kodą sunkiai ištaisomu
![Page 55: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/55.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
55 / 259
def makebold ( fn ) :def wrapped ( ) :
return "<b>" + fn ( ) + "</b>"return wrapped
@makebolddef h e l l o ( ) :
return " h e l l o wor ld "
pr in t h e l l o ( ) ## r e t u r n s <b>h e l l o wor ld </b>
![Page 56: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/56.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
56 / 259
Užrašas:
@d eko r a t o r i u sdef f u n k c i j a ( ) :
. . . kodas . . .
yra ekvivalentus tokiam:
def f u n k c i j a ( ) :. . . kodas . . . .
f u n k c i j a = d e k o r a t o r i u s ( f u n k c i j a )
![Page 57: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/57.jpg)
Užduotis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
57 / 259
Paaiškinkite ši kodo fragmentą:
def makebold ( f ) :return lambda : "<b>" + f ( ) + "</b>"
def ma k e i t a l i c ( f ) :return lambda : "<i>" + f ( ) + "</i>"
@makebold@make i t a l i cdef say ( ) :
return " S v e i k i "
pr in t say ( )
![Page 58: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/58.jpg)
Metaklases
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
58 / 259
Metaklases - tai klasiu kurimo klases.
![Page 59: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/59.jpg)
Šis bei tas apie klases
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
59 / 259
■ Klase naudojama sukurti objektui.■ Bet klase taip pat yra objektas!■ Metaklase yra atsakinga už klases objekto sukurimą.
![Page 60: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/60.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
60 / 259
>>> x=20>>> x . __class__<c l a s s ’ i n t ’>>>> c l a s s X( ob j e c t ) : pass
>>> x=X()>>> x . __class__<c l a s s ’__main__.X ’>>>> x . __class__ . __class__<c l a s s ’ t ype ’>
![Page 61: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/61.jpg)
type
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
61 / 259
Tai yra itaisytoji Pitono metaklase, kuri naudojama kuriant visusobjektus.
![Page 62: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/62.jpg)
Dar šis bei tas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
62 / 259
■ Galima sukurti savo metaklases■ Apsirašant klasę galima naudoti atributą __metaclass__■ Galima tiesiog naudoti type
![Page 63: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/63.jpg)
type naudojimo pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
63 / 259
>>> ManoKlase=type ( ’ ManoKlase ’ , ( ) , { } )>>> a=ManoKlase ( )>>> a . __class__<c l a s s ’__main__. ManoKlase ’>
![Page 64: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/64.jpg)
__metaclass__ naudojimo pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
64 / 259
Pagrindinis tikslas - automatiškai keisti klasę jos sukurimo metu.
c l a s s Foo ( o b j e c t ) :__metaclass__ = . . . kodas . . .
c l a s s Foo ( Bar ) :pass
■ Patikrinama ar klase Foo turi atributą __metaclass__■ Jei nera, tikrinama ar tevine klase turi atributą __metaclass__■ Jei nera, tikrinama ar egzistuoja atributas __metaclass__
modulio lygiu■ Jei nera, naudojamas type
![Page 65: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/65.jpg)
Baigiant
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
65 / 259
99% programuotoju praktiškai niekada nesirupina tuo, kas yrametaklases. Jei kyla klausimas ar reikalinga metaklase, tuometatsakymas yra ne. Metaklases dažniausiai naudojamos kuriant API.
![Page 66: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/66.jpg)
Grafine naudotojo sąsaja
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
66 / 259
![Page 67: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/67.jpg)
GNS - grafine naudotojo sąsaja
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
67 / 259
Grafikos priemonemis pagrista sąsaja tarp žmogaus ir kompiuterio(angl. GUI - graphic user interface).
![Page 68: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/68.jpg)
Pitonas ir GNS
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
68 / 259
Pitonas neturi savojo (angl. native) GNS palaikymo, tačiau egzistuojapakankamai biblioteku kitose programavimo kalbose, kurias galinaudoti Pitonas. Tą užtikrina taip vadinami susiejejai (angl.bindings) ar apgaubejai (angl. wrappers).
![Page 69: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/69.jpg)
Bibliotekos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
69 / 259
■ Naudojančios tcl/tk:
◆ tkinter - standartine◆ wck (widget construction kit) - trečios šalies biblioteka
■ Nenaudojančios tk (daugiaplatformes):
◆ PyGtk◆ PyQt◆ wxPython
![Page 70: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/70.jpg)
widget
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
70 / 259
Valdiklis - grafines sąsajos valdymo elementas arba programa,sukurianti valdikli ir dirbanti su juo.
![Page 71: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/71.jpg)
GNS pagrindinis veikimo principas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
71 / 259
![Page 72: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/72.jpg)
Pavyzdys (pseudokodas)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
72 / 259
whi le True :even t = getNextEvent ( )i f even t :
i f even t == Terminate :break
p ro c e s sEv en t ( even t )
![Page 73: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/73.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
73 / 259
Pitono konsolines programos visada rašoos su .py pletiniu, tuo tarpuGNS programoms galima naudoti .pyw. Tai aktualu WIndows OS, nesnaudojamas pythonw.exe interpretatorius vietoje python.exe. KitomsOS tai nera taip aktualu.
![Page 74: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/74.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
74 / 259
#!/ u s r / b i n / python3
import t k i n t e r
![Page 75: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/75.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
75 / 259
GNS yra iš esmes objektu hierarchija. Todel kiekvienas elementas turiparametrą parent.
#!/ u s r / b i n / python3
import t k i n t e r
c l a s s Pavyzdys ( t k i n t e r . Tk ) :def __init__( s e l f , p a r en t ) :
t k i n t e r . Tk . __init__( s e l f , p a r en t )
![Page 76: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/76.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
76 / 259
Išlaikome nuorodą i tevini objektą.
#!/ u s r / b i n / python3
import t k i n t e r
c l a s s Pavyzdys ( t k i n t e r . Tk ) :def __init__( s e l f , p a r en t ) :
t k i n t e r . Tk . __init__( s e l f , p a r en t )s e l f . p a r en t = pa ren t
![Page 77: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/77.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
77 / 259
Atskiriame logiką nuo grafiniu elementu.
#!/ u s r / b i n / python3
import t k i n t e r
c l a s s Pavyzdys ( t k i n t e r . Tk ) :def __init__( s e l f , p a r en t ) :
t k i n t e r . Tk . __init__( s e l f , p a r en t )s e l f . p a r en t = pa ren ts e l f . i n i t i a l i z e ( )
def i n i t i a l i z e ( s e l f ) :pass
![Page 78: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/78.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
78 / 259
Sukuriame metodą main paleidimui iš komandines eilutes ir nurodomeprogramai kartoti ciklą (mainloop).
#!/ u s r / b i n / python3
import t k i n t e rc l a s s Pavyzdys ( t k i n t e r . Tk ) :
def __init__( s e l f , p a r en t ) :t k i n t e r . Tk . __init__( s e l f , p a r en t )s e l f . p a r en t = pa ren ts e l f . i n i t i a l i z e ( )
def i n i t i a l i z e ( s e l f ) :pass
i f __name__ == "__main__" :app = Pavyzdys (None )app . t i t l e ( ’Mano p i rm o j i programa ’ )app . ma in loop ( )
![Page 79: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/79.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
79 / 259
Ką tik sukureme pati paprasčiausią tuščią langą. Galima paleistiprogramą.
![Page 80: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/80.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
80 / 259
Yra keletas budu, norint išdestyti elementus lange. Tą atlieka klasesvadinamos maketavimo tvarkytuvemis (angl. layout manager).Pasinaudosime pačia paprasčiausia - grid.
. . . .def i n i t i a l i z e ( s e l f ) :
s e l f . g r i d ( ). . . .
![Page 81: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/81.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
81 / 259
Sukuriame valdikli ir patalpiname ji tvarkytuveje.
. . . .def i n i t i a l i z e ( s e l f ) :
s e l f . g r i d ( )
s e l f . t e k s t a s = t k i n t e r . Ent ry ( s e l f )s e l f . t e k s t a s . g r i d ( column = 0 , row = 0 ,s t i c k y = ’EW’ )
. . . .
![Page 82: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/82.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
82 / 259
Ką tik sukureme langą su teksto ivedimo laukeliu. Galima paleistiprogramą.
![Page 83: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/83.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
83 / 259
Sukuriame mygtuką ir patalpiname ji tvarkytuveje.
. . . .def i n i t i a l i z e ( s e l f ) :
s e l f . g r i d ( )
s e l f . t e k s t a s = t k i n t e r . Ent ry ( s e l f )s e l f . t e k s t a s . g r i d ( column = 0 , row = 0 ,s t i c k y = ’EW’ )
mygtukas = t k i n t e r . Button ( s e l f ,t e x t = ’ Paspausk mane ! ’ )
mygtukas . g r i d ( column = 1 , row = 0). . . .
![Page 84: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/84.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
84 / 259
Ką tik sukureme langą su teksto ivedimo laukeliu ir mygtuku. Galimapaleisti programą. Deja, bet mygtukas nieko nedaro!
![Page 85: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/85.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
85 / 259
Sukuriame etiketę (angl. label) ir patalpiname ją tvarkytuveje.
. . . .def i n i t i a l i z e ( s e l f ) :
s e l f . g r i d ( ). . .mygtukas = t k i n t e r . Button ( s e l f ,t e x t = ’ Paspausk mane ! ’ )
mygtukas . g r i d ( column = 1 , row = 0)
a n t r a s t e = t k i n t e r . Labe l ( s e l f , anchor = ’w ’ ,f g = ’ wh i t e ’ , bg = ’ g reen ’ )
a n t r a s t e . g r i d ( column = 0 , row = 1 ,columnspan = 2 , s t i c k y = ’EW’ )
. . . .
![Page 86: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/86.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
86 / 259
Ijungiame automatini elementu dydžio keitimą (pirmajam stulpeliui) irnurodome, kad lango parametrus keisti galesime tik horizontaliai.
. . . .def i n i t i a l i z e ( s e l f ) :
s e l f . g r i d ( ). . .a n t r a s t e = t k i n t e r . Labe l ( s e l f , anchor = ’w ’ ,f g = ’ b l u e ’ , bg = ’ g reen ’ )
a n t r a s t e . g r i d ( column = 0 , row = 1 ,columnspan = 2 , s t i c k y = ’EW’ )
s e l f . g r i d_co l umncon f i gu r e (0 , we ight = 1)s e l f . r e s i z a b l e ( True , F a l s e )
. . . .
![Page 87: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/87.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
87 / 259
Iki šiol tik deliojome elementus. Toliau pridesime interaktyvumo.
![Page 88: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/88.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
88 / 259
Pridedame tekstiniam laukui ir mygtukui ivykiu valdiklius (angl. eventhandler)
s e l f . t e k s t a s = t k i n t e r . Ent ry ( s e l f )s e l f . t e k s t a s . g r i d ( column = 0 , row = 0 ,
s t i c k y = ’EW’ )s e l f . t e k s t a s . b ind ( ’<Return>’ ,
s e l f . OnPressEnter )mygtukas = t k i n t e r . Button ( s e l f ,
t e x t = ’ Paspausk mane ! ’ ,command = s e l f . OnButtonCl i ck )
mygtukas . g r i d ( column = 1 , row = 0)s e l f . a n t r a s t e sK i n t ama s i s = t k i n t e r . S t r i n gVa r ( )a n t r a s t e = t k i n t e r . Labe l ( s e l f ,
t e x t v a r i a b l e = s e l f . a n t r a s t e sK i n t ama s i s ,anchor = ’w ’ , f g = ’ wh i t e ’ , bg = ’ g reen ’ )
a n t r a s t e . g r i d ( column = 0 , row = 1 ,columnspan = 2 , s t i c k y = ’EW’ )
![Page 89: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/89.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
89 / 259
Funkcijos, reaguojančios i ivykius.
. . . .def i n i t i a l i z e ( s e l f ) :
. . .def OnButtonCl i ck ( s e l f ) :
s e l f . a n t r a s t e sK i n t ama s i s . s e t (’ Paspaus ta s mygtukas ! ’ )
def OnPressEnter ( s e l f , e ven t ) :s e l f . a n t r a s t e sK i n t ama s i s . s e t (
’ Paspaus ta s Ente r ! ’ ). . . .
![Page 90: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/90.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
90 / 259
Pakeičiame funkciju elgesi:
. . . .def i n i t i a l i z e ( s e l f ) :
. . .def OnButtonCl i ck ( s e l f ) :
s e l f . a n t r a s t e sK i n t ama s i s . s e t (s e l f . t e k s t a t sK i n t ama s i s . ge t ( ) )
def OnPressEnter ( s e l f , e ven t ) :s e l f . a n t r a s t e sK i n t ama s i s . s e t (
s e l f . t e k s t a sK i n t ama s i s . ge t ( ) ). . . .
![Page 91: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/91.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
91 / 259
Programa pilnai parašyta. Toliau aptarsime kelis patobulinimus.
![Page 92: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/92.jpg)
Patobulinimas I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
92 / 259
Pirmoji eilute automatiškai parenka tekstini lauką kaip aktyvu. Antrojieilute nurodo, kad bus pažymimas visas tekstas.
. . .s e l f . t e k s t a s . f ocus_se t ( )s e l f . t e k s t a s . s e l e c t i o n_ r a n g e (0 , t k i n t e r .END). . .
![Page 93: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/93.jpg)
Patobulinimas I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
93 / 259
tkinter turi vieną nedidelę dydžio keitimo problemą. Šis modulisvisada megina pakeisti lango dydi priklausomai nuo jo valdikliu.Kartais tai tinka, bet dažniausiai ne. Todel atliekame langopakeitimus kurimo metu ir užfiksuojame jo dydi.
def i n i t i a l i z e ( s e l f ) :. . . .s e l f . update ( )s e l f . geometry ( s e l f . geometry ( ) ). . . .
![Page 94: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/94.jpg)
Valdikliu klases I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
94 / 259
Egzistuoja ir daugiau klasiu darbui su GNS:
■ Button - mygtukas■ Canvas - piešimo valdiklis■ Checkbutton - žymimasis langelis■ Entry - teksto ivedimo valdiklis■ Frame - Naudojamas kitu valdikliu grupavimui ir organizavimui
(veikia kaip konteineris). Gali buti naudojamas kaip bazine klasesudetingu valdikliu kurimui.
■ Label - antrašte■ Listbox - pasirenkamasis sąrašas■ Menubutton - meniu mygtukas■ Menu - meniu■ Message - daugiaeilute etikete■ Radiobutton - žymimoji akute
![Page 95: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/95.jpg)
Valdikliu klases II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
95 / 259
■ Scale - šliaužiklis■ Scrollbar - slankiklis■ Text - tekstinis laukas■ Toplevel - atskiro lango konteineris (neturi tevinio valdiklio)■ Spinbox - redaguojamas sąrašas■ PanedWindow - langas, sudarytas iš polangiu■ LabelFrame - valdiklis Frame su antrašte. Naudojamas
grupavimui■ tkMessageBox - modulis, skirtas pranešimu atvaizdavimui
![Page 96: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/96.jpg)
Valdiklio Canvas pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
96 / 259
import t k i n t e r
top = t k i n t e r . Tk ( )C = t k i n t e r . Canvas ( top , bg=" b l u e " ,
h e i g h t =250 , w idth =300)coord = 10 , 50 , 240 , 210a r c = C . c r ea t e_a rc ( coord , s t a r t =0,
e x t e n t =150 , f i l l =" red " )C . pack ( )top . ma in loop ( )
![Page 97: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/97.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
97 / 259
![Page 98: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/98.jpg)
Valdiklio Checkbutton pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
98 / 259
import t k i n t e rfrom t k i n t e r import ∗
top = t k i n t e r . Tk ( )CheckVar1 = In tVa r ( )CheckVar2 = In tVa r ( )C1 = Checkbutton ( top , t e x t = "Music" ,
v a r i a b l e = CheckVar1 , onva l u e = 1 ,o f f v a l u e = 0 , h e i g h t =5, width = 20)
C2 = Checkbutton ( top , t e x t = "Video " ,v a r i a b l e = CheckVar2 , onva l u e = 1 ,o f f v a l u e = 0 , h e i g h t =5, width = 20)
C1 . pack ( )C2 . pack ( )top . ma in loop ( )
![Page 99: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/99.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
99 / 259
![Page 100: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/100.jpg)
Valdiklio Frame pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
100 / 259
import t k i n t e rr oo t = t k i n t e r . Tk ( )frame = t k i n t e r . Frame ( r oo t )frame . pack ( )bottomframe = t k i n t e r . Frame ( r oo t )bottomframe . pack ( s i d e = t k i n t e r .BOTTOM )redbu t ton = t k i n t e r . Button ( frame , t e x t="Red" , f g=" redr edbu t ton . pack ( s i d e = t k i n t e r . LEFT)g r eenbu t ton = t k i n t e r . Button ( frame , t e x t="Brown" , f g=greenbu t ton . pack ( s i d e = t k i n t e r . LEFT )b l u ebu t t on = t k i n t e r . Button ( frame , t e x t="Blue " , f g="b l u ebu t t on . pack ( s i d e = t k i n t e r . LEFT )b l a ckbu t t on = t k i n t e r . Button ( bottomframe , t e x t="Blackb l a ckbu t t on . pack ( s i d e = t k i n t e r .BOTTOM)roo t . ma in loop ( )
![Page 101: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/101.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
101 / 259
![Page 102: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/102.jpg)
Valdiklio Listbox pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
102 / 259
from Tk i n t e r import ∗
import tkMessageBoximport Tk i n t e r
top = Tk ( )Lb1 = L i s t b o x ( top )Lb1 . i n s e r t (1 , "Python" )Lb1 . i n s e r t (2 , " P e r l " )Lb1 . i n s e r t (3 , "C" )Lb1 . i n s e r t (4 , "PHP" )Lb1 . i n s e r t (5 , "JSP" )Lb1 . i n s e r t (6 , "Ruby" )Lb1 . pack ( )top . ma in loop ( )
![Page 103: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/103.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
103 / 259
![Page 104: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/104.jpg)
Valdiklio Menubutton pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
104 / 259
from Tk i n t e r import ∗
import tkMessageBoximport Tk i n t e rtop = Tk ( )mb = Menubutton ( top , t e x t=" cond iments " ,
r e l i e f=RAISED )mb. g r i d ( )mb. menu = Menu ( mb, t e a r o f f = 0 )mb[ "menu" ] = mb. menumayoVar = In tVa r ( )ketchVar = In tVa r ( )mb. menu . add_checkbutton ( l a b e l="mayo" ,
v a r i a b l e=mayoVar )mb. menu . add_checkbutton ( l a b e l=" ketchup " ,
v a r i a b l e=ketchVar )mb. pack ( )top . ma in loop ( )
![Page 105: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/105.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
105 / 259
![Page 106: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/106.jpg)
Valdiklio Menu pavyzdys I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
106 / 259
from Tk i n t e r import ∗
def donoth ing ( ) :f i l e w i n = Top l e v e l ( r oo t )but ton = Button ( f i l e w i n , t e x t="Do noth i ng but ton "but ton . pack ( )
r oo t = Tk ( )menubar = Menu( r oo t )f i l emenu = Menu( menubar , t e a r o f f =0)f i l emenu . add_command( l a b e l="New" , command=donoth ing )f i l emenu . add_command( l a b e l="Open" , command=donoth ingf i l emenu . add_command( l a b e l="Save" , command=donoth ingf i l emenu . add_command( l a b e l="Save as . . . " , command=donf i l emenu . add_command( l a b e l=" C lo s e " , command=donoth ingf i l emenu . add_sepa ra to r ( )
![Page 107: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/107.jpg)
Valdiklio Menu pavyzdys II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
107 / 259
f i l emenu . add_command( l a b e l=" Ex i t " , command=roo t . q u i tmenubar . add_cascade ( l a b e l=" F i l e " , menu=f i l emenu )ed i tmenu = Menu( menubar , t e a r o f f =0)ed i tmenu . add_command( l a b e l="Undo" , command=donoth inged i tmenu . add_sepa ra to r ( )ed i tmenu . add_command( l a b e l="Cut" , command=donoth ing )ed i tmenu . add_command( l a b e l="Copy" , command=donoth inged i tmenu . add_command( l a b e l="Paste " , command=donoth inged i tmenu . add_command( l a b e l=" De l e t e " , command=donoth ined i tmenu . add_command( l a b e l=" S e l e c t A l l " , command=donmenubar . add_cascade ( l a b e l=" Ed i t " , menu=edi tmenu )helpmenu = Menu( menubar , t e a r o f f =0)helpmenu . add_command( l a b e l="Help I ndex " , command=donhelpmenu . add_command( l a b e l="About . . . " , command=donotmenubar . add_cascade ( l a b e l="Help " , menu=helpmenu )r oo t . c o n f i g (menu=menubar )r oo t . ma in loop ( )
![Page 108: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/108.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
108 / 259
![Page 109: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/109.jpg)
Valdiklio Radiobutton pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
109 / 259
from Tk i n t e r import ∗
def s e l ( ) :s e l e c t i o n = " P a s i r i n k o t e " + s t r ( va r . ge t ( ) )l a b e l . c o n f i g ( t e x t = s e l e c t i o n )
r oo t = Tk ( )va r = In tVa r ( )R1 = Rad iobut ton ( root , t e x t="Option 1" ,
v a r i a b l e=var , v a l u e =1, command=s e l )R1 . pack ( anchor = W )R2 = Rad iobut ton ( root , t e x t="Option 2" ,
v a r i a b l e=var , v a l u e =2, command=s e l )R2 . pack ( anchor = W )R3 = Rad iobut ton ( root , t e x t="Option 3" ,
v a r i a b l e=var , v a l u e =3, command=s e l )R3 . pack ( anchor = W)l a b e l = Labe l ( r oo t )l a b e l . pack ( )r oo t . ma in loop ( )
![Page 110: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/110.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
110 / 259
![Page 111: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/111.jpg)
Modulio tkMessageBox galimybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
111 / 259
Galima sukurti kelis skirtingus dialogo langustkMessageBox.funkcija(antrašte, pranešimas [, parametrai]):
■ showinfo()■ showwarning()■ showerror()■ askquestion()■ askokcancel()■ askyesno()■ askretrycancel()
![Page 112: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/112.jpg)
Reguliariosios išraiškos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
112 / 259
![Page 113: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/113.jpg)
Reguliari išraiška (angl. regular expression
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
113 / 259
Tai simboliu eilute aprašanti šabloną (angl. pattern)
![Page 114: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/114.jpg)
Keletas faktu
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
114 / 259
■ Darbui su reguliariosiomis išraiškomis naudojamas standartinismodulis re
■ Raides ir skaitmenys atitinka patys save, t.y. šablonas, sudarytasiš raidžiu ir skaičiu atitinką tą pačią simboliu eilutę
■ Simbolis "" yra komandinis. Daugelis raidžiu ir skaitmenu igyja naująprasmę, kai prieš juos naudojamas komandinis simbolis
■ Skyryba veikia atvirkščiai - specialią reikšmę turi kol nerakomandinio simbolio
■ Reguliarioji išraiška suformuojama funkcijos compile("išraiška")pagalba
![Page 115: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/115.jpg)
Sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
115 / 259
■ "." – atitinka bet kuri simboli išskyrus "\n" (jei DOTALL,atitinka ir ji)
■ "ˆ" – atitinka simboliu eilutes pradžią (jei MULTILINE, veikia irpo "\n")
■ "$" – atitinka simboliu eilutes pabaigą (jei MULTILINE, veikia itprieš "\n")
■ "*" – atitinka nuli ar daugiau ankstesnes reguliarios išraiškosatveju (godus - lygina tiek kartu kiek tik galima)
■ "+" – atitinka vieną ar daugiau ankstesnes reguliarios išraiškosatveju (godus)
■ "?" – atitinka nuli ar vieną ankstesnes reguliarios išraiškos atveji(atitinka vieną jei galima)
■ "*?, +?, ??" – negodus "*", "+", "?" atvejai (atitinka kuomažiau atveji)
■ "{m}" – atitinka tiksliai m reguliarios išraiškos atveju
![Page 116: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/116.jpg)
Sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
116 / 259
■ "{m, n}" – atitinka nuo m iki n ankstesnes reguliarios išraiškosatveju (godus)
■ "{m, n}?" – atitinka nuo m iki n ankstesnes reguliarios išraiškosatveju (negodus)
■ "[...]" – atitinka bet kuri iš nurodytos skliausteliuose simboliuaibes. Pirmasis aibes simbolis "∧" atitinka neigini
■ "|" – atitinka bet kurią iš prieš ji arba po jo esančią išraišką■ "(...)" – atitinka reguliarią išraišką skliausteliuose ir apibrežia
grupę■ "(?aiLmsux)" – viena ar kelios raides iš aibes "a", "i", "L", "m",
"s", "u", "x"■ "(?:...)" – veikia kaip (...), tik neapibrežia kaip grupes■ "(?P<id>...)" – veikia kaip (...), tik grupe dar igyja vardą id■ "(?P=id)" – atitinka tai, kas buvo apibrežta grupe id■ "(?#...)" – komentaras
![Page 117: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/117.jpg)
Sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
117 / 259
■ "(?=...)" – "pažvelk i prieki", tik tikrina ar nurodyta reguliariišraiška skliausteliuose bus sutinkama toliau
■ "(?!...)" – neigiamas "pažvelk i prieki" tikrinimas (ar neranurodytos reguliarios išraiškos)
■ "(?<=...)" – "pažvelk atgal"■ "(?<!...)" – neigiamas "pažvelk atgal"■ "\number" – atitinka bet ką, kas anksčiau buvo tikrinta su grupe,
kurios numeris yra number (grupes numeruojamos automatiškainuo 1 iki 99)
■ "\A" – atitinka tuščią simboliu eilutę, bet tik nuo visos simboliueilutes pradžios
■ "\b" – atitinka tuščią simboliu eilutę, bet tik žodžio pradžioje arpabaigoje
■ "\B" – atitinka tuščią simboliu eilutę, bet tik ne žodžio pradžiojear pabaigoje
![Page 118: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/118.jpg)
Sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
118 / 259
■ "\d" – atitinka vieną skaitmeni, kaip aibe [0-9]■ "\D" – atitinka vieną ne skaitmeni, kaip aibe [ˆ0-9]■ "\s" – atitinka matomus tarpus, kaip aibe [\t\n\r\f\v]■ "\S" – atitinka ne matomus tarpus, kaip aibe [ˆ\t\n\r\f\v]■ "\w" – atitinka vieną iš raidžiu ar skaitmenu simboliu, nebent
nustatyta LOCALE ar UNICODE, kaip aibe [a-zA-Z0-9_]■ "\W" – atitinka vieną ne iš raidžiu ar skaitmenu simboliu■ "\Z" – atitinka tuščią eilutę, bet tik visos eilutes pabaigoje■ "\" – atitinka kairini brukšni
![Page 119: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/119.jpg)
Palyginimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
119 / 259
■ išraiška.match("simboline eilute") – ieško atitikmens nuosimbolines eilutes pradžios
◆ re.match("šablonas", "simboline eilute")
■ search() – ieško atitikmens bet kur simbolineje eiluteje
![Page 120: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/120.jpg)
Kitos funkcijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
120 / 259
■ findall■ finditer■ split■ sub■ subn
![Page 121: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/121.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
121 / 259
Palyginimo rezultatas yra match objektas.
![Page 122: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/122.jpg)
Match objekto atributai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
122 / 259
■ pos – simbolines eilutes indeksas, nuo kurios vietos paieškaprasidejo
■ endpos – simbolines eilutes indeksas, iki kurios vietos paieškavyko
■ lastgroup■ lastindex■ re – naudotas reguliariosios išraiškos objektas■ string – naudota simboline eilute
![Page 123: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/123.jpg)
Match funkcijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
123 / 259
■ end, span, start■ expand■ group■ groups■ groupdict
![Page 124: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/124.jpg)
Pavyzdys 1
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
124 / 259
>>> re . match ( "kuku" , "kuku" )<_sre . SRE_Match o b j e c t a t 0 x1005d33d8>>>> re . match ( "kuku" , " kukube" )<_sre . SRE_Match o b j e c t a t 0 x1005d3370>>>> re . match ( "kuku" , " bekukube" )>>> re . match ( " .∗ kuku" , " bekukube" )<_sre . SRE_Match o b j e c t a t 0 x1005d33d8>>>> re . match ( "kuku .∗ " , " bekukube" )>>>
![Page 125: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/125.jpg)
Pavyzdys 2
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
125 / 259
>>> m = re . match ( " (\w+) (\w+)" ," I s a a c Newton , p h y s i c i s t " )
>>> m. group (0 ) # P i l n a s r e z u l t a t a s’ I s a a c Newton ’
>>> m. group (1 ) # Pi rma s i s p og r up i s .’ I s a a c ’
>>> m. group (2 ) # An t r a s i s p og r up i s .’ Newton ’
>>> m. group (1 , 2) # Rezu l t a t u k o r t e z a s .( ’ I s a a c ’ , ’ Newton ’ )
![Page 126: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/126.jpg)
Pavyzdys 3
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
126 / 259
>>> m = re . match ( " (?P<f i r s t_name >\w+)(?P<last_name>\w+)" , "Malcolm Reyno lds " )>>> m. group ( ’ f i r s t_name ’ )’ Malcolm ’
>>> m. group ( ’ last_name ’ )’ Reyno lds ’
![Page 127: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/127.jpg)
Pavyzdys 4
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
127 / 259
>>> m = re . match ( " ( . . )+ " , " a1b2c3" )# Sutampa 3 k a r t u s .>>> m. group (1 )# Rezu l t a t a s t i k p a s k u t i n i s su tap imas .’ c3 ’
![Page 128: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/128.jpg)
Pavyzdys 5
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
128 / 259
>>> ema i l = " va rd en i s@dopa sa l i n k_ta imena s . net ">>> m = re . s e a r c h ( " p a s a l i n k_ t a i " , ema i l )>>> ema i l [ :m. s t a r t ( ) ] + ema i l [m. end ( ) : ]’ va rden i s@domenas . net ’
![Page 129: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/129.jpg)
Serializacija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
129 / 259
![Page 130: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/130.jpg)
Serializacija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
130 / 259
Tai procesas, kurio metu objektai yra paverčiami baitiniu srautuduomenu perdavimui. Priešingas procesas baitini srautą vel paverčiaobjektu.
![Page 131: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/131.jpg)
Moduliai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
131 / 259
■ pickle – Pitono modulis■ cPickle – C kalba parašytas serializacijos modulis■ marshal – primityvesnis Pitono serializacijos modulis
![Page 132: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/132.jpg)
Kokius tipus galima serializuoti?
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
132 / 259
■ None, True, False■ Skaičius, iskaitant kompleksinius■ Simbolines eilutes■ Kortežus, sąrašus, aibes ir žodynus sudarytus iš serializuojamu
objektu■ Aukščiausio lygio modulio funkcijas■ Aukščiausio lygio modulio itaisytąsias funkcijas■ Aukščiausio lygio modulio klases■ Tokiu klasiu objektai, kuriu __dict__ arba funkcijos
__getstate()__ rezultatas yra serializuojami
![Page 133: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/133.jpg)
Pagrindines funkcijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
133 / 259
■ dump(objektas, failas[, protokolas]) – irašo serializuotą objektoišraišką i failą
■ load(file) – nuskaito simbolinę eilutę iš failo ir interpretuoja ją kaipserializuotą duomenu srautą, rezultate grąžina atstatytą objektą
■ dumps(objektas[, protokolas]) – ekvivalenti funkcijai dump(), betgrąžina simbolinę eilutę
■ loads(simboline_eilute) – simbolinę eilutę paverčią objektu
![Page 134: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/134.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
134 / 259
import p i c k l e>>> c l a s s Foo :. . . a t t r = ’ t e k s t a s ’
>>> ps = p i c k l e . dumps ( Foo )>>> psb ’ \ x80\x03c__main__\nFoo\nq\x00 . ’>>> x = p i c k l e . l o a d s ( ps )>>> x<c l a s s ’__main__. Foo ’>>>> x . a t t r’ t e k s t a s ’
![Page 135: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/135.jpg)
Kam naudojama
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
135 / 259
■ Išsaugant programos busenos duomenis■ Siunčiant duomenis TCP ryšiu■ Išsaugant Pitono duomenis duomenu bazeje■ Paverčiant objektą simboline eilute, kurią galima panaudoti kaip
žodyno raktą
◆ Pastaruoju atveju galimos problemos, kaip dvieju identiškuobjektu (ar netgi to paties) skirtinga simbolines eilutesreprezentacija
![Page 136: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/136.jpg)
Laiko operacijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
136 / 259
![Page 137: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/137.jpg)
Laiko operacijos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
137 / 259
Kaip matuojamas laikas? Kam jis naudojamas?
![Page 138: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/138.jpg)
Kai kurie faktai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
138 / 259
■ Laikas matuojamas sekundemis (arba sekundes dalimis)■ Atskaitos taškas (gali buti keli variantai, dažnai naudojamas 1970
m. sausio 1 d.)■ Dažniausiai naudojamas ivedimo ir išvedimo operacijos■ Laikas gali buti atvaizduojamas ivairiais budais
![Page 139: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/139.jpg)
Moduliai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
139 / 259
■ time■ datetime■ pytz■ dateutil■ sched■ calendar■ mx.DateTime
![Page 140: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/140.jpg)
Pavyzdys 1
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
140 / 259
>>> x = time . t ime ( )>>> x1361126459.358845>>> time . l o c a l t i m e ( x )t ime . s t ru c t_t ime ( tm_year=2013 , tm_mon=2, tm_mday=17,tm_hour=20, tm_min=40, tm_sec=59, tm_wday=6,tm_yday=48, tm_isdst=0)
>>> time . a s c t ime ( t ime . l o c a l t i m e ( x ) )’ Sun Feb 17 20 : 40 : 59 2013 ’
![Page 141: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/141.jpg)
Pavyzdys 2
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
141 / 259
import t imeimport ospr in t ( ’ Zad i n tuva s p a l e i s t a s . . . ’ )not_executed = 1
whi le ( not_executed ) :dt = l i s t ( t ime . l o c a l t i m e ( ) )hour = dt [ 3 ]minute = dt [ 4 ]t ime . s l e e p (30)i f hour == 6 and minute == 50 :os . popen2 ( "YOUR_COMMAND" )not_executed = 0
![Page 142: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/142.jpg)
Atgalinis laikmatis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
142 / 259
import t ime
def ge tTota lM inu t e s ( ) :s = i npu t ( ’ i n pu t format : xxhxxm\n ’ )hour = s [ 0 : s . f i n d ( ’ h ’ ) ]minute = s [ s . f i n d ( ’ h ’ )+1: s . f i n d ( ’m’ ) ]return i n t ( hour )∗60+ i n t ( minute )
def run ( ) :pr in t ( " s i g n a l a s " )pr in t ( "\a" )
![Page 143: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/143.jpg)
Atgalinis laikmatis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
143 / 259
i f __name__ == ’__main__ ’ :minutes = ge tTota lM inu t e s ( )pr in t ( " Ska i c i u o j amos minutes : " + s t r ( minutes ) )whi le minutes > 0 :
t ime . s l e e p (60)minutes = minutes − 1
run ( )
![Page 144: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/144.jpg)
Gijos ir procesai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
144 / 259
![Page 145: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/145.jpg)
Procesas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
145 / 259
Tai veikiančios programos objektas.
![Page 146: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/146.jpg)
Gija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
146 / 259
Nepriklausomai vykdoma instrukciju seka.
![Page 147: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/147.jpg)
Procesu savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
147 / 259
■ OS izoliuoja vieną procesą nuo kito.■ Priklausomai nuo kompiuterio architekturos arba OS
daugiaproceses programos gali veikti geriau nei paremtos gijomis.■ Procesai tarpusavyje komunikuoja per tarpprocesini bendravimą
(angl. inter-process communication), kuris remiasi:
◆ failais (iskaitant virtualius failus (angl. memory-mapped file),kai virtualioje atmintyje saugomas failo turinys)
◆ duomenu bazemis◆ kanalais (angl. pipe)
■ Standartiniai moduliai – process, subprocess ir os
![Page 148: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/148.jpg)
Giju savybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
148 / 259
■ Gija egzistuoja proceso viduje ir naudoja proceso išteklius■ Užtikrina nepriklausomą instrukciju sekos vykdymo kontrolę■ Viename procese gali buti vykdomos kelios gijos■ Vieno proceso gijos dalijasi proceso ištekliais
![Page 149: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/149.jpg)
Gijos ar procesai?
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
149 / 259
■ Proceso sukurimo ir valdymo kaina yra didesne nei proceso■ Duomenu mainai tarp giju yra greitesni, nei tarp procesu■ Gijos gali efektyviau dirbti, jei ivedimo/išvedimo operacijos
persipina su skaičiavimais■ Gijos tinkamos apdoroti asinchroninius ivykius (galima dirbti
toliau laukiant signalo)
![Page 150: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/150.jpg)
Giju panaudojimo modeliai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
150 / 259
■ Šeimininkas/tarnas – viena gija atsakinga už darbu paskirstymą irrezultatu pateikimą
■ Konvejeris – užduotis suskaidoma i operaciju sekas, kurias atliekaskirtingos gijos
■ Lygiavertes gijos – viena gija paskirsto darbus ir dirba kartu sukitomis
![Page 151: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/151.jpg)
Giju moduliai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
151 / 259
■ thread – senasis, žemo lygio modulis su minimaliomis galimybemis(nerekomenduojama naudoti)
■ threading – aukšto lygio modulis (išplečia moduli thread),paremtas Java kalbos gijomis
■ queue – skirtas giju sinchronizavimui
![Page 152: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/152.jpg)
Giju naudojimo pavojai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
152 / 259
■ Aklaviete (angl. deadlock) – Gija1 užrakina duomenis A ir meginaužrakinti duomenis B, tačiau tuo pat metu Gija2 yra užrakinusiduomenis B ir megina užrakinti duomenis A.
◆ To galima išvengti nustačius užrakinimo eiliškumą, t.y. tikužrakinus A, galima užrakinti B ir t.t.
■ Naudingas darbas – jei daugybe giju laukia galimybes užrakintiduomenis naudojimui, tuomet jos "pakimba" ir nieko nedaro
◆ To praktiškai neimanoma išvengti, tačiau galima sumažintiapribojus darbu kieki su užrakintais duomenimis
![Page 153: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/153.jpg)
Giju realizavimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
153 / 259
■ Sukurti gijos objektą Thread ir jai perduoti kviečiamą objektą■ Sukurti klasę, kuri paveldi gijos klasę
![Page 154: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/154.jpg)
Pavyzdys I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
154 / 259
import t h r e a d i n gimport t imepr in t ( "Paspausk k l a v i s a ! " )i n pu t ( )th readBreak = Fa l s edef TimeProcess ( ) :
whi le not th readBreak :pr in t ( t ime . t ime ( ) − s t a r tT ime )t ime . s l e e p (3 )
s t a r tT ime = time . t ime ( )t h r e a d i n g . Thread ( t a r g e t = TimeProcess ) . s t a r t ( )i n pu t ( )th readBreak = Truepr in t ( " La i kma t i s s u s t abdy t a s , s p a u s k i t e k l a v i s a noredi n pu t ( )q u i t ( )
![Page 155: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/155.jpg)
Pavyzdys II
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
155 / 259
from t h r e a d i n g import Thread
c l a s s ManoGija ( Thread ) :def run ( s e l f ) :
pr in t ( ’ G i j a %s ’ % s e l f . name)
fo r i in range ( 3 ) :g i j a = ManoGija ( )g i j a . name = ig i j a . s t a r t ( )
![Page 156: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/156.jpg)
Pavyzdys III
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
156 / 259
c l a s s ManoGija ( Thread ) :def __init__( s e l f , i ) :
Thread . __init__( s e l f )s e l f . i = i
def run ( s e l f ) :whi le True :
pr in t ( ’ G i j a # %i ’ % s e l f . i )t ime . s l e e p ( s e l f . i )
![Page 157: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/157.jpg)
Klase Thread
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
157 / 259
Thread (group = None , #paramet ra s r e z e r v u o t a s
ThreadGroup k l a s e it a r g e t = None , #ob j ek t a s , t u r i n t i s metoda
run ( )name = None , #g i j o s va rda sa rg s = ( ) , #parametru k o r t e z a s kv iec iamam
o b j e k t u ikwargs={}, #parametru zodynas kv iec iamam
o b j e k t u i)
![Page 158: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/158.jpg)
Thread klases atributai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
158 / 259
■ start() – paleidžia objektą kaip giją jo run() metodu■ run() – metodas valdantis giją, gali buti perrašomas poklaseje■ join(timeout = None) – laukiama, kol gija baigs darbą■ name – identifikacine simboline eilute (kelios gijos gali tureti tą
pati pavadinimą)■ ident – gijos identifikatorius■ is_alive() – patikrinama, ar gija yra "gyva"■ daemon – nurodo, ar gija yra "demoniška", t.y. tokia gija
automatiškai baigs darbą, kai bus uždaroma pagrindine programa
![Page 159: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/159.jpg)
Lock ir RLock
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
159 / 259
Sinchronizuoja giju darbą.
■ acquire([blokuojantis]) – užrakinami duomenys■ release() – atrakinami duomenys
![Page 160: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/160.jpg)
threading modulis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
160 / 259
■ active_count() – veikiančiu giju skaičius■ Condition() – gamykline funkcija grąžinanti sąlygini kintanti
objektą, suteikia galimybę gijoms laukti kitu giju pranešimu■ current_thread() – grąžina dabartini gijos objektą■ enumerate() – pateikia sąrašą visu aktyviu giju■ Event() – gamykline funkcija grąžinanti naują ivykio objektą■ local – klase, vaizduojanti gijos duomenis■ Lock()■ RLock()■ Semaphore(value=1)■ BoundedSemaphore(value=1)■ Thread■ Timer■ settrace(funkcija)■ setprofile(funkcija)■ stack_size([size])
![Page 161: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/161.jpg)
Prievadai ir tinklo protokolo moduliai serveriui
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
161 / 259
![Page 162: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/162.jpg)
Apibrežimai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
162 / 259
Prievadas (angl. socket) – sąsaja duomenims arba komandomspersiusti tarp kompiuterio ir jo išoriniu itaisu/prietaisu.Protokolas (angl. protocol) – taisykliu ir susitarimu rinkinys,apibrežiantis duomenu perdavimo formatus bei proceduras tarpkompiuteriu.
![Page 163: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/163.jpg)
Keli faktai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
163 / 259
■ Su prievadais galima dirbti socket modulio pagalba■ Egzistuoja ir daugiau standartiniu ir trečiuju šaliu moduliu■ Visi moduliai yra priklausomi nuo operaciniu sistemu savuju (angl.
native) prievadu funkcionalumo■ Modulis socket yra žemo lygio■ Aukštesnio lygio moduliai yra paprastesni (naudojimo atžvilgiu)
![Page 164: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/164.jpg)
Modulis socket
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
164 / 259
Gamybine funkcija socket() leidžia sukurti prievado objektą s. Norintatlikti tinklo operacijas, reikia kviesti atitinkamus objekto s metodus.Atkreipsime demesi i tai, kad Pitonas palaiko tiek IPv4, tiek IPv6internetiniu protokolu (IP) standartus.
![Page 165: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/165.jpg)
IP standartai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
165 / 259
■ IPv4 – adresą sudaro pora (host, port). host yra pagrindiniokompiuterio vardas ir gali buti DNS vardas (pvz., www.delfi.lt)arba tiesiog internetinis adresas (pvz., 192.168.100.100). port yrasveikasis skaičius nurodantis prievado jungties numeri
■ IPv6 – adresą sudaro kortežas (host, port, flowinfo, scopeid)
![Page 166: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/166.jpg)
Modulio socket funkcijos (1)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
166 / 259
■ getdefaulttimeout() – parodo, kiek laiko pagal nutylejimą skirtaprievadui galioti
■ getfqdn(host=”) – grąžina galiojanti srities vardą (angl. domainname
■ gethostbyaddr(ipaddr) – grąžina kortežą (hostname, alias_list,ipaddr_list) su kompiuterio vardu
■ gethostbyname_ex(hostname) – analogiškai prieš tai buvusiaifunkcijai
■ htonl(i32) – paverčia 32 bitu sveikąji skaičiu i tinklo formatą■ htons(i16) – paverčia 16 bitu sveikąji skaičiu i tinklo formatą■ inet_aton(ipaddr_string) – paverčia IP adresą i 32 bitu tinko
formatą, 4 baitu simbolinę eilutę■ inet_ntoa(packed_string) – paverčia simbolinę eilutę i IP adresą
![Page 167: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/167.jpg)
Modulio socket funkcijos (2)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
167 / 259
■ ntohl(i32) – paverčia 32 bitu sveikąji skaičiu iš tinklo formato isavąji
■ ntohl(i16) – paverčia 16 bitu sveikąji skaičiu iš tinklo formato isavąji
■ setdefaulttimeout(t) – nustato, kiek laiko galios prievadas■ socket(family, type) – sukuria prievado objektą, priklausanti tam
tikrai šeimai (AF_INET, AF_UNIX) ir turinti tam tikrą tipą,pavyzdžiui SOCKET_STREAM (TCP jungčiai) arSOCK_DGRAM (UDP jungčiai)
![Page 168: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/168.jpg)
Klase socket (1)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
168 / 259
■ accept() – priima susijungimo prašymą ir grąžina porą (s1,(ipaddr, port)). s1 yra aktyvus prievadas, o kita dalis nurodo"pašnekovą". Prieš tai turejo buti iškviesti metodai bind ir listen
■ bind((host, port)) – susieja prievadą s su pašnekovu adresu hostir jungties numeriu port
■ close() – užbaigia prievado darbą■ connect((host, port)) – sujungia prievadą su nurodytu serveriu■ getpeername() – grąžina porą (ipaddr, port) nutolusio prievado■ getsockname() – grąžina porą (ipaddr, port) vietinio prievado■ getsockopt(level, optname[, bufsize]) – grąžina dabartinę prievado
nustatymu vertę■ gettimeout() – parodo, kiek laiko nustatyta prievadui galioti
![Page 169: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/169.jpg)
Klase socket (2)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
169 / 259
■ listen(maxpending) – laukia meginimu prisijungti prie prievado,leidžiant ne daugiau kaip maxpending meginimu bet kuriuo metu
■ makefile(mode = ’r’) – sukuria failo objektą, kuris dirba suprievadu. Failą butina uždaryti, kitaip prievadas liks atvertas
■ recv(bufsize) – gauna ne didesnio nei nurodyto dydžio simboliueilutę
■ recvfrom(bufsize) – grąžina kortežą (data, (ipaddr, port))■ send(string) – siunčia simboliu eilutę kaip baitu seką per prievadą.
Grąžina išsiustu baitu skaičiu n■ sendall(string) – išsiunčia visą simboliu eilutę■ sendto(string, (host, port)) – siunčia duomenis nurodytam
prievadui ir grąžina išsiustu baitu skaičiu n■ settimeout(value) – nurodo, kiek laiko truks blokuojanti operacija
![Page 170: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/170.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
170 / 259
>>> import s o ck e t>>> s = sock e t . s o ck e t ( )>>> s . connect ( ( "www. d e l f i . l t " , 80 ) )>>> s . getpeername ( )( ’ 91 . 234 . 200 . 112 ’ , 80)>>> s . getsockname ( )( ’ 192 . 168 . 0 . 1 51 ’ , 59045)>>> s . s e t t imeou t (10)>>> s . ge t t imeou t ( )10 .0>>> s . r e c v (10)Traceback ( most r e c e n t c a l l l a s t ) :
F i l e "<s t d i n >" , l i n e 1 , in <module>sock e t . t imeout : t imed out
![Page 171: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/171.jpg)
Primityvus serverio pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
171 / 259
import s o ck e tHOST = ’ ’PORT = 5000s = sock e t . s o ck e t ( s o ck e t . AF_INET,so ck e t .SOCK_STREAM)
s . b ind ( (HOST, PORT))s . l i s t e n (1 )conn , addr = s . a ccep t ( )whi le True :
data = conn . r e c v (1024)i f not data : break
conn . s e n d a l l ( data )conn . c l o s e ( )
![Page 172: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/172.jpg)
Primityvus kliento pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
172 / 259
import s o ck e t
HOST = ’ ’PORT = 5000s = sock e t . s o ck e t ( s o ck e t . AF_INET,so ck e t .SOCK_STREAM)
s . connect ( (HOST, PORT))s . s e n d a l l ( b ’ Sve i ka s , p a s a u l i ’ )data = s . r e c v (1024)s . c l o s e ( )pr in t ( ’ Gauta : ’ , r e p r ( data ) )
![Page 173: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/173.jpg)
Patobulintas serverio pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
173 / 259
import s o ck e t sock = sock e t . s o ck e t ( s o ck e t . AF_INET,so ck e t .SOCK_STREAM)
sock . b ind ( ( ’ ’ , 8881))sock . l i s t e n (5 )t ry :
whi le True :newSocket , a dd r e s s = sock . a ccep t ( )pr in t " P r i s i j u n g t a p r i e : " , a dd r e s swhi le True :
r e c e i v edDa t a = newSocket . r e c v (8192)i f not r e c e i v edDa ta : break
newSocket . s e n d a l l ( r e c e i v edDa t a )newSocket . c l o s e ( )pr in t ( " A t s i j u n g t a nuo : " , a dd r e s s )
f i n a l l y :sock . c l o s e ( )
![Page 174: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/174.jpg)
Bendroji interneto sąsaja
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
174 / 259
![Page 175: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/175.jpg)
CGI (angl. common gateway interface)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
175 / 259
Bendroji interneto sąsaja – programavimo budas, nusakantis, kaipserveriai perduoda informaciją, panaudodami papildomas programas,vykdomas serveryje.
![Page 176: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/176.jpg)
Kaip tai veikia?
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
176 / 259
Egzistuoja dvieju tipu turinys - statinis ir dinaminis. Dinaminis turinysir yra tai, kam reikalinga sąsaja.
■ Naudotojas siunčia užklausą serveriui■ Serveris ivykdo kitą programą, kuriai perduoda užklausą■ Serveris paima vykdytos programos atsakymą■ Serveris siunčia atsakymą naudotojui
Taigi, serveris veikia kaip tarpininkas tarp naudotojo ir programos,kuri vadinama CGI programa arba scenarijumi (angl. script).
![Page 177: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/177.jpg)
Pastaba
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
177 / 259
Šiuo metu CGI retai naudojamas, nes tai yra žemo lygio sąsaja.Paprastai naudojamos lankstesnes ir nestandartines architekturos, nesjos leidžia panaudoti aukštesni abstrakcijos lygi produktyvumuipadidinti. Tačiau principai išlieka tie patys.
![Page 178: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/178.jpg)
Formu valdymo metodai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
178 / 259
■ GET – naudoja adreso eilutę perduoti duomenims ir yra apribotas(URL ilgis yra apie 200 baitu)
■ POST – persiunčia formos turinio koduotą duomenu srautą ir yraneriboto ilgio
![Page 179: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/179.jpg)
Žinotina
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
179 / 259
■ CGI standartas nenurodo ar konkretus scenarijus gali dirbti tiek suužklausos eilute (GET), tiek su standartine ivestim (POST).
■ Pitono standartinis modulis cgi duomenis gauna tik iš užklausos,jei ji yra, priešingu atveju naudoja standartinę ivesti.
![Page 180: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/180.jpg)
cgi modulis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
180 / 259
■ escape(str, quote=False) – pakeičia simboliu eilutes simblolius &,<, > atitinkamais HTML esybemis &, <, > jeiquote=True, tuomet ir kabutes pakeičia i "
■ class FieldStorage(keep_blank_values=0) – tiek užklausos, tiekstandartinio ivado duomenys perduodami kuriamam šios klasesobjektui f. f yra atvaizdis: perduodamos formos vardiniaiatributai tampa f raktais. f užtikrina žodyno funkcionalumo dali:raktu iteravimas (for n in f ), rakto egzistavimas (if n in f ),indeksavimas (f[n]). Gaunama reikšme gali buti arba FieldStorageobjektu sąrašas (vardas n pasikartoja kelis kartus), arba vienasobjektas
![Page 181: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/181.jpg)
FieldStorage klases metodai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
181 / 259
■ getfirst(key, default=None) – grąžina elemento arba, jei taisąrašas, sąrašo elemento pirmąją reikšmę, jei raktas nerastas –default reikšmę
■ getlist(key) – grąžina sąrašą sudaryta iš vienos arba keliu reikšmiuarba tuščią sąrašą
![Page 182: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/182.jpg)
FieldStorage klases atributai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
182 / 259
■ disposition – turinio išdestymo antrašte■ disposition_options – antraštes savybiu atvaizdis■ headers – antraščiu atvaizdis■ file – failo tipo objektas iš kurio galima nuskaityti valdymo
komandą■ filename – failo pavadinimas komandoms nurodomas kliento■ name – valdymo atributo pavadinimas■ type – turinio tipo antrašte■ type_options – turinio tipo antraštes savybiu atvaizdis■ value – komandos reikšme simbolines eilutes pavidalu
![Page 183: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/183.jpg)
Rezultatas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
183 / 259
■ Serveris surenka visus CGI scenarijaus rezultatus ir persiunčiaklientui
■ Rezultatai gali buti ivairaus tipo priklausomai nuo standarto
pr in t ( "Content−Type : t e x t / html " )pr in t ( "<html><head><t i t l e >Sv e i k i ,HTML</ t i t l e ></head>" )
pr in t ( "<body><p>Sv e i k i ,CGI i r HTML ka r t u !</p></body></html>" )
![Page 184: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/184.jpg)
Kaip paleisti Pitono CGI scenarijus
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
184 / 259
■ Reikia, kad serveryje butu instaliuotas Pitonas ir standartinebiblioteka
■ Scenarijus privalo tureti vykdymo režimą (chmod +x)■ Unix sistemose pirma eilute turi buti #!/usr/local/bin/python3■ Microsoft web serveriuose rekomenduojama naudoti pletini .pyg ir
ji susieti su atitinkamu interpretatoriumi
![Page 185: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/185.jpg)
Slapukai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
185 / 259
Slapukas (angl. cookie) – serverio perduodamas ir kliento saugomasduomenu elementas. Perdavimas vyksta antraštes pagalba. Kiekvieną
slapuką sudaro slapuko vardas ir reikšme, o taip pat papildomiatributai, pavyzdžiui max-age nurodo kiek laiko slapukas galioja. Beto, slapukai neužtikrina privatumo, todel duomenys turetu butikoduojami.
![Page 186: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/186.jpg)
Cookie modulis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
186 / 259
Sudaro kelios alternatyvios klases:
■ Morsel■ SimpleCookie■ SmartCookie
![Page 187: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/187.jpg)
Pavyzdys (1)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
187 / 259
import Cookie , t ime , os , sys , t r a c eba ck
s y s . s t d e r r = s y s . s t dou t
t ry :c = Cook ie . S imp leCook i e ( )c [ " l a s t v i s i t "]= s t r ( t ime . t ime ( ) )pr in t ( c . output ( ) )pr in t ( "Content−Type : t e x t / html " )pr in t ( "<html><head><t i t l e >Sve i ka s , l a n k y t o j a u !</ t i t l e ></head><body>" )
![Page 188: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/188.jpg)
Pavyzdys (2)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
188 / 259
c = Cook ie . S imp leCook i e (os . e n v i r o n . get ( "HTTP_COOKIE" ) )
when = c . get ( " l a s t v i s i t " )i f when i s None :
pr in t ( "<p>S v e i k i a t v yke i s i p u s l a p ip i rma ka r t a !</p>" )pr in t ( "<p>Spau s k i t e mygtuka ’ A t n a u j i n t i ’ ,j e i n o r i t e t e s t i </p>" )
e l s e :t ry : l a s t v i s i t = f l o a t (when . v a l u e )except :
pr in t ( "<p>Neimanoma dekoduo t i s l a puko{0}</p>" . format (when . v a l u e ) )pr in t ( "</br><pre>" )t r a c eba ck . p r i n t_exc ( )
![Page 189: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/189.jpg)
Pavyzdys (3)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
189 / 259
e l s e :formwhen = time . a s c t ime (t ime . l o c a l t i m e ( l a s t v i s i t ) )pr in t ( "<p>S v e i k i s u g r i z e !</p>" )pr in t ( "<p>Pa s k u t i n i k a r t a l a n k e t e s{0}</p>" . format ( formwhen ) )
pr in t ( "</body></html>" )except :
pr in t ( "Content−Type : t e x t / html " )pr in t ( )pr in t ( "</br><pre>" )t r a c eba ck . p r i n t_exc ( )
![Page 190: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/190.jpg)
HTML – strukturizuotas tekstas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
190 / 259
![Page 191: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/191.jpg)
HTML
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
191 / 259
Hiperteksto ženklinimo kalba (angl. Hyper Text Markup Language) –elektroninio dokumento tekstas, kurio atskiros dalys siejamos saitais(nuorodomis)
![Page 192: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/192.jpg)
HTML
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
192 / 259
■ Kalba tinklalapiu kurimui■ Aprašo tinklalapio strukturą■ Sudaryta iš elementu aibes■ Elementai nurodo naršyklei kaip atvaizduoti turini■ Elementus vaizduoja žymes■ Žymes aprašo turinio dalis kaip antrašte, pastraipa, lentele ir t.t.■ Pačios žymes yra nerodomos
![Page 193: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/193.jpg)
Trumpa HTML istorija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
193 / 259
■ 1989 – Timas Berneris Ly išrado www■ 1991 – Timas Berneris Ly išrado HTML■ 1993 – Deivas Ragetas paraše HTML+(konkuruojantis projektas)■ 1995 – HTML darbo grupe apibreže HTML 2.0■ 1997 – W3C rekomendacija - HTML 3.2■ 1999 – W3C rekomendacija - HTML 4.01■ 2000 – W3C rekomendacija - XHTML 1.0
![Page 194: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/194.jpg)
Trumpa HTML istorija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
194 / 259
■ 2008 – Žiniatinklio hiperteksto taikymo technologijos grupe(WHATWG) paskelbe HTML 5 juodrašti
■ 2012 – WHATWG paskelbe HTML 5 standartą■ 2014 – W3C rekomendacijos HTML 5■ 2016 – W3C siulymas HTML 5.1■ 2017 – W3C rekomendacijos HTML 5.1 (2 leidimas)■ 2017 – W3C rekomendacijos HTML 5.2■ 2018 – W3C siulymas HTML 5.3
![Page 195: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/195.jpg)
HTML pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
195 / 259
<!DOCTYPE html><html>
<head><t i t l e >Page T i t l e </ t i t l e >
</head><body>
<h1>My F i r s t Heading</h1><p>My f i r s t pa ragraph .</p>
</body></html>
![Page 196: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/196.jpg)
Žymes, žymes...
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
196 / 259
■ !DOCTYPE – nurodo dokumento tipą■ html – čia patalpinamas tinklalapio turinys■ head – dokumento antrašte iskaitant ir meta informaciją
◆ title – tinklalapio pavadinimas
■ body – matomo dokumento turinys
◆ h1 – didele antrašte◆ p – paragrafas
![Page 197: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/197.jpg)
Žymes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
197 / 259
■ <žyme>turinys...</žyme>■ <žyme/>■ <žyme atributas="reikšme",...>■ Yra arti 100 žymiu!■ Kiekviena žyme turi savo atributus■ Dažniausiai naudojama apie 10–20 žymiu■ Dalis žymiu jau nebenaudojamos
![Page 198: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/198.jpg)
Sąsaja
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
198 / 259
<a h r e f=" h t t p s : // mi f . vu . l t ">S i s t e k s t a s y r a l i n k a s .
</a>
![Page 199: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/199.jpg)
Paveikslelis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
199 / 259
<img s r c="/ images / html5 . g i f " a l t="HTML5 I con "><img s r c=" h t t p s : // mi f . vu . l t /a . g i f ">
![Page 200: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/200.jpg)
Lentele
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
200 / 259
<tab l e ><tr>
<th>Vardas</th><th>Pavarde</th><th>Amzius</th>
</t r><tr>
<td>Jonas</td><td>Smitas </td><td>50</td>
</t r></tab l e >
![Page 201: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/201.jpg)
Sąrašai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
201 / 259
Nenumeruotas ir numeruotas sąrašai
<ul><l i >Kava</ l i ><l i >Arbata </ l i ><l i >Pienas </ l i >
</ul><ol>
<l i >Kava</ l i ><l i >Arbata </ l i ><l i >Pienas </ l i >
</ol>
![Page 202: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/202.jpg)
Sąrašai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
202 / 259
Aprašomasis sąrašas (sąvoka su paaiškinimu)
<dl><dt>Kava</dt><dd>Juodas k a r s t a s ger imas </dd><dt>Pienas </dt><dd>Ba l t a s s a l t a s ger imas </dd>
</dl>
![Page 203: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/203.jpg)
Blokas div
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
203 / 259
Kitu HTML elementu (dažniausiai logiškai susijusiu) konteineris.
<d iv><h2>London</h2><p>London i s the c a p i t a l c i t y o f England . I t i s
the most popu lous c i t y in the Un i ted Kingdom ,w i th a me t r o p o l i t a n a r ea o f ove r 13 m i l l i o ni n h a b i t a n t s .
</p></div>
![Page 204: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/204.jpg)
Blokas video
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
204 / 259
Apibrežia video srautą.
<v i d e o width="320" h e i g h t="240" c on t r o l s ><sou r c e s r c="movie .mp4" type=" v i d e o /mp4"><sou r c e s r c="movie . ogg" type=" v i d e o /ogg">Your b rowse r does not suppo r t the v i d e o tag .
</v ideo>
![Page 205: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/205.jpg)
Blokas canvas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
205 / 259
Interaktyvus piešimas, dažniausiai naudojamas JavaScript
<canvas i d="myCanvas"></canvas>
<s c r i p t >va r canvas = document . ge tE l ementBy Id ( "myCanvas" ) ;v a r c t x = canvas . ge tContex t ( "2d" ) ;c t x . f i l l S t y l e = "#FF0000" ;c t x . f i l l R e c t (0 , 0 , 80 , 8 0 ) ;</ s c r i p t >
![Page 206: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/206.jpg)
Blokas span
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
206 / 259
Apibrežia grupę (inline elements) bloko (container) viduje (dažniausiaiteksto dali)
<h1>My <span s t y l e=" c o l o r : r ed ">Important </span>Heading
</h1>
![Page 207: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/207.jpg)
Klases ir unikalumas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
207 / 259
Klase nurodo logini ryši tarp elementu, unikalumas – išskirtinumą.
<d i v c l a s s=" c i t i e s "><h2>London</h2><p>London i s the c a p i t a l o f England .</p>
</div>
<d i v c l a s s=" c i t i e s "><h2>Par i s </h2><p>Pa r i s i s the c a p i t a l o f France .</p>
</div>
<h1 i d="myHeader">My Header</h1>
![Page 208: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/208.jpg)
Formos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
208 / 259
<form a c t i o n="/ act ion_page . php"t a r g e t="_blank" | " _s e l f "method=" pos t " | " get ">
<l a b e l fo r="name">Vardas :</ l a b e l ><br><inpu t type=" t e x t " i d="name" name="fname"><br><inpu t type=" r a d i o " i d=" v y r a s " name=" gender "
v a l u e="V"><br><l a b e l fo r=" vy r a s ">Male</ l a b e l ><br><inpu t type=" r a d i o " i d=" mot e r i s " name=" gender "
v a l u e="M"><br><l a b e l fo r=" mot e r i s ">Female</ l a b e l ><br><inpu t type=" submit " v a l u e=" P a t v i r t i n t i ">
</form>
![Page 209: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/209.jpg)
Mygtukas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
209 / 259
<inpu t type=" button "v a l u e="Paspausk mane"o n c l i c k=" j a v a s c r i p t_ f u n c t i o n ( ) ">
![Page 210: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/210.jpg)
JavaScript
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
210 / 259
Programavimo kalba tinklalapiu interaktyvumui.
<!DOCTYPE html><html><body><button type=" button "
o n c l i c k="document . ge tE l ementBy Id ( ’ demo ’ ) .innerHTML = Date ( ) ">
Paspausk mane .</button><p i d="demo"></p></body></html>
![Page 211: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/211.jpg)
JavaScript
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
211 / 259
Skriptas gali buti rašomas tiek pačiame .html faile, tiek atskirame .jsfaile.
<s c r i p t >document . w r i t e ( " He l l o J a v aS c r i p t ! " ) ;
</ s c r i p t >
<s c r i p t s r c=" myScr ip t . j s "></s c r i p t ><s c r i p t s r c=" myScr ip t . j s "/>
Dažniausiai .js failai importuojami antraštineje dokumento dalyje.
![Page 212: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/212.jpg)
JavaScript funkcija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
212 / 259
f u n c t i o n t o C e l s i u s ( f a h r e n h e i t ) {return (5/9) ∗ ( f a h r e n h e i t −32);
}document . ge tE l ementBy Id ( "demo" ) . innerHTML = t o C e l s i u s
![Page 213: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/213.jpg)
Ivykiai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
213 / 259
Yra ivairiu ivykiu – langui, formai, klaviaturai, pelei ir t.t.
<but ton type=" button "o n c l i c k=" j a v a s c r i p t f u n c t i o n "onmouseover=" t h i s . s t y l e . backgroundCo lo r =
’ r ed ’ ; r e t u r n t r u e ; "onmouseout=" t h i s . s t y l e . backgroundCo lo r =
’ b i s q u e ’ ; r e t u r n t r u e ; ">
Paspausk mane .</button>
![Page 214: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/214.jpg)
CSS
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
214 / 259
■ CSS (Cascade Style Sheet) – kalba aprašanti HTML dokumentostiliu
■ Aprašo kaip HTML elementai turi buti rodomi (išvaizda)
![Page 215: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/215.jpg)
CSS
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
215 / 259
Taip pat yra du budai kaip naudoti – .html viduje arba išoriniame faile.css
< l i n k r e l=" s t y l e s h e e t " h r e f=" . / boo t s t r a p . c s s ">
<s t y l e >p { c o l o r : r ed ; t ex t−a l i g n : c e n t e r ; }
</ s t y l e >
<d i v s t y l e="background−c o l o r : powderb lue ; "></div>
![Page 216: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/216.jpg)
CSS sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
216 / 259
selektorius {savybe: reikšme; ...;}
![Page 217: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/217.jpg)
CSS sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
217 / 259
Selektoriumi gali buti:
■ Bet kuri žyme (žymes vardas)■ Apibrežtas unikalus id (#id)■ Apibrežta klase (.klase)■ Žymes ir klases junginys■ Universalus selektorius (*)■ Žymiu busenos (:busena)
![Page 218: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/218.jpg)
CSS sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
218 / 259
p { tex t−a l i g n : c e n t e r ; c o l o r : r ed ; }#id1 { tex t−a l i g n : c e n t e r ; c o l o r : r ed ; }. c e n t e r { tex t−a l i g n : c e n t e r ; c o l o r : r ed ; }p . c e n t e r { tex t−a l i g n : c e n t e r ; c o l o r : r ed ; }∗ { tex t−a l i g n : c e n t e r ; c o l o r : b l u e ; }a : v i s i t e d { c o l o r : g r een ; }
h1 , h2 , p { tex t−a l i g n : c e n t e r ; c o l o r : r ed ; }
![Page 219: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/219.jpg)
CSS sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
219 / 259
■ Kiekvienas elementas turi jam budingas savybes.■ Reikšmes priklauso tam tikrai reikšmiu aibei.■ JavaScript pagalba galima manipuliuoti CSS’u.■ Atstumai:
◆ auto – paliekama apskaičiuoti naršyklei◆ skaičius – aukštis/plotis px, pt, pc, cm, mm, in, ...◆ % – nurodo aukšti/ploti bloke jo atžvilgiu◆ initial – atkuria numatytas reikšmes◆ inherit – paveldi iš tevinio bloko
■ Pozicionavimas – static, relative, fixed, absolute, sticky
![Page 220: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/220.jpg)
CSS ir medija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
220 / 259
Yra daug galimybiu manipuliuoti objektais, ju išvaizda, išdestymu irpan..
<s t y l e >d i v {
width : 100 px ;h e i g h t : 100px ;background−c o l o r : r ed ;an imat ion−name : example ;an imat ion−du r a t i o n : 4 s ;
}@keyf rames example {
from {background−c o l o r : r ed ; }to { background−c o l o r : y e l l ow ; }
}</ s t y l e >
<body><div ></div ></body>
![Page 221: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/221.jpg)
Apie ši bei tą
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
221 / 259
■ HTML yra SGML (angl. Standart General Markup Language)standarto daline realizacija
■ Egzistuoja keletas biblioteku, kurios leidžia išgauti naudingąinformaciją iš HTML dokumentu
![Page 222: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/222.jpg)
Bibliotekos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
222 / 259
■ urllib – užtikrinti ryšiui■ html – apdoroti informacijai■ bs4 – apdoroti informacijai
![Page 223: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/223.jpg)
html.parser biblioteka
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
223 / 259
Turi klasę HTMLParser:
■ feed(data) – duomenu padavimas■ close() – priverstinis duomenu apdorojimas■ reset() – objekto perkrovimas■ ...■ handle_starttag(tag, attrs) – kviečiamas apdoroti sutiktą žymę■ handle_endtag(tag) – kviečiamas apdoroti žymes pabaigą■ handle_data(data) – kviečiamas apdoroti žymes turini■ ...
![Page 224: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/224.jpg)
Pavyzdys I
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
224 / 259
import u r l l i b . r e q u e s tfrom html . p a r s e r import HTMLParser
c l a s s MyHTMLParser (HTMLParser ) :def __init__( s e l f , ∗ args , ∗∗kw ) :
supe r ( ) . __init__(∗ args , ∗∗kw)s e l f . a d r e s a i = [ ]
def hand l e_s t a r t t a g ( s e l f , tag , a t t r s ) :#a t t r s i s a l i s t o f t u p l e s ( a t t r , v a l u e )i f tag == ’ a ’ and ’ h r e f ’ in d i c t ( a t t r s ) :
s e l f . a d r e s a i . append ( d i c t ( a t t r s ) [ ’ h r e f ’ ] )
p = MyHTMLParser ( )
![Page 225: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/225.jpg)
Pavyzdys I (tęsinys)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
225 / 259
#f = u r l l i b . r e q u e s t . u r l o p en ( ’ h t tp : //www. python . org ’ )r eq = u r l l i b . r e q u e s t . Request ( ’ h t tp : //www. python . org ’
, h eade r s={ ’ User−Agent ’ : ’ Mo z i l l a /5 .0 ’ })f = u r l l i b . r e q u e s t . u r l o p en ( req )BUFSIZE = 32000whi le True :
data = f . read (BUFSIZE ) . decode ( ’ u t f −8 ’ )i f not data : break
p . f e ed ( data )p . c l o s e ( )f . c l o s e ( )
fo r u r l in p . a d r e s a i :pr in t ( u r l )
![Page 226: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/226.jpg)
BeautifulSoup
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
226 / 259
■ Biblioteka, skirta lengvam informacijos ištraukimui.■ Instaliavimas – pip install beautifulsoup4■ Naudojimas – import bs4■ Dokumentacija –
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
![Page 227: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/227.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
227 / 259
from bs4 import Beau t i f u l Soup
html_doc = """<html><head><t i t l e >The Dormouse ’ s s t o r y </ t i t l e ></head><body><p c l a s s=" t i t l e "><b>The Dormouse ’ s s t o r y </b></p><p c l a s s=" s t o r y ">Once upon a t ime t h e r e weret h r e e l i t t l e s i s t e r s .</p></body></html>
soup = Beau t i f u l Soup ( html_doc , ’ html . p a r s e r ’ )p r i n t ( soup . p r e t t i f y ( ) )"""
![Page 228: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/228.jpg)
XML – strukturizuotas tekstas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
228 / 259
![Page 229: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/229.jpg)
Kas yra XML?
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
229 / 259
■ XML (angl. extensible markup language) – universali ženklinimokalba, skirta dokumento strukturai aprašyti.
■ Budas surašyti strukturuotus duomenis i failą, kuris:
◆ lengvai skaitomas◆ vienareikšmiškas◆ išplečiamas◆ nepriklausomas nuo OS
![Page 230: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/230.jpg)
Kas yra XML?
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
230 / 259
■ Technologiju šeima:
◆ XML 1.0, XML 1.1◆ Xlink◆ Xpointer & Xfragments◆ XSL, XSLT, XPath◆ XQuery◆ DOM, SAX◆ XML vardu erdves◆ XML schemos◆ ir dar keletas
![Page 231: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/231.jpg)
XML ypatybes
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
231 / 259
■ Naudoja žymes ir atributus■ Turinys ir stilius yra atskirti■ Naudotojas apibrežia žymes ir atributo paskirti
![Page 232: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/232.jpg)
Sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
232 / 259
■ Elementai arba žymes (angl. tags) – prasideda ir baigiasisimboliais "<", ">", kuriu viduje irašomas elemento vardas
■ Elementas gali tureti papildomu atributu ar vardu sričiu■ Elementas gali aprašyti kitus elementus■ Elementai tarpusavyje nepersidengia
<elementas>...</elementas>■ Elementas negali tureti dvieju atributu tuo pačiu vardu■ Kai kurie atributai yra rezervuoti■ Ir t.t.
![Page 233: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/233.jpg)
XML deklaracija
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
233 / 259
■ <?xml ... ?>■ Neprivalomas, bet dažniausiai naudojamas elementas■ Dažniausiai naudojami atributai: version ir encoding■ <?xml version="1.0" encoding="UTF-8"?>
![Page 234: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/234.jpg)
XML komentaras
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
234 / 259
■ <!– ... –>■ Ignoruojamas turinys■ Negali buti naudojamas prieš deklaraciją■ Negali buti naudojama žymes viduje■ Komentaras negali tureti dvigubu brukšneliu
![Page 235: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/235.jpg)
XML elementas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
235 / 259
■ Elementas – <vardas> tekstas </vardas>■ Savyje gali tureti tekstą, kitus elementus ar abieju kombinaciją.■ Elemento vardas turi prasideti raide ar pabraukimu■ Svarbu ar tai didžiosios ar mažosios raides■ Vienas elementas visada yra šakninis (root)■ Kiti elementai suformuoja XML medi
![Page 236: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/236.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
236 / 259
<knygynas><knyga>
<pavad in imas>Eureka</pavad in imas><au t o r i u s >Archimedas</au t o r i u s ><metai >2000</metai><ka ina >10</ka ina>
</knyga><knyga>. . .
</knygynas>
![Page 237: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/237.jpg)
XML atributas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
237 / 259
■ Atributas – raktas="reikšme" pora.■ Suprojektuota saugoti su konkrečiu elementu susijusius duomenis.
■ Atributo reikšme visada turi buti rašoma kabutese.■ Kabutes gali buti tiek viengubos, tiek dvigubos.■ <knyga kalba="LT">...</knyga>■ Nera taisykles, kada naudoti atributą, o kada elementą
![Page 238: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/238.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
238 / 259
<knyga ka l ba="LT">. . .
</knyga>
<knyga><ka lba>LT</ka lba>. . .
</knyga>
![Page 239: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/239.jpg)
XML atributu naudojimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
239 / 259
■ Negali tureti daug reikšmiu.■ Negali tureti medžio strukturos■ Nera plečiami
Gal ju visai atsisakyti?
![Page 240: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/240.jpg)
Vardu problemos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
240 / 259
■ Elementu vardai suteikiami programuotojo.■ Kas bus, jei apjungsime skirtingus XML dokumentus?
![Page 241: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/241.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
241 / 259
<tab l e ><tr>
<td>Apples </td><td>Bananas</td>
</t r></tab l e >
<tab l e ><name>A f r i c a n Co f f e e Table</name><width >80</width><length >120</ l ength >
</tab l e >
![Page 242: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/242.jpg)
Vardu problemos sprendimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
242 / 259
■ Panaudoti prefiksą■ Prefiksas irašomas prieš kiekvieną žymę, kuri "priklausys" tam
prefiksui – <h:table>■ Universalus ištekliu identifikatorius.
![Page 243: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/243.jpg)
Universalus ištekliu identifikatorius
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
243 / 259
URI (angl. uniform resource identifier) – kai naudojamas daugiau neivienas XML žodynas (pvz. naudojami keli skirtingu šaltiniu xmlfailai), tam, kad išvengti elementu ar ju atributu persidengimo,naudojamas šis identifikatorius, kuris turetu užtikrinti unikalumą.
■ Aprašomas taip – xmlns:prefix="URI"■ Gali jo ir nebuti – xmlns=""■ Simboliu eilute turetu identifikuoti internetini šaltini.■ Dažniausiai naudojamas URL (locator) – internetinis domeno
adresas.■ Dar gali buti naudojamas URN (name)
![Page 244: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/244.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
244 / 259
<roo t xmlns : h=" ht tp : //www. w3 . org /TR/html4 /"xmlns : f=" h t t p s : //www. w3schoo l s . com/ f u r n i t u r e ">
<h : t ab l e ><h : t r>
<h : td>Apples </h : td><h : td>Bananas</h : td>
</h : t r></h : t ab l e ><f : t ab l e >
<f : name>A f r i c a n Co f f e e Table</f : name><f : width >80</f : width><f : l eng th >120</ f : l eng th >
</f : t a b l e >
</root>
![Page 245: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/245.jpg)
Numatytoji vardu sritis
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
245 / 259
■ Apibrežus vardu sriti elementui nebutina naudoti prefikso!■ Visi vaikiniai elementai paveldi vardu sriti
![Page 246: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/246.jpg)
Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
246 / 259
<root>
<t a b l e xmlns=" ht tp : //www.w3 . org /TR/html4 /"><tr>
<td>Apples </td><td>Bananas</td>
</t r></tab l e ><t a b l e xmlns=" h t t p s : //www. w3schoo l s . com/ f u r n i t u r e ">
<name>A f r i c a n Co f f e e Table</name><width >80</width><length >120</ l ength >
</tab l e >
</root>
![Page 247: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/247.jpg)
XML analize (angl. parsing)
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
247 / 259
■ SAX – ivykiu valdoma analize, kuomet dokumentas nuskaitomasnuosekliai ir analizuojama reikalinga dokumento dalis
■ DOM – objektu valdoma analize, kuomet dokumentasnuskaitomas visas ir sukuriamos atmintyje duomenu strukturos,atvaizduojančios naršomą dokumentą
![Page 248: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/248.jpg)
Privalumai ir trukumai
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
248 / 259
■ SAX – reikia mažiau ištekliu, tačiau programine iranga taip patturi buti atitinkamai susiteminta.
■ DOM – lankstesnis, tačiau reikalaujantis daugiau ištekliu. Taippat naudojamas dokumentu sukurimui ar keitimui.
![Page 249: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/249.jpg)
xml.dom paketas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
249 / 259
■ xml.sax modulis – SAX realizacija■ xml.dom minidom modulis – minimali XML DOM standarto
realizacija■ xml.dom.pulldom – tarpine realizacija tarp SAX ir DOM metodu
![Page 250: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/250.jpg)
XSL(T) kalbos
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
250 / 259
■ XSLT – skirta XML dokumentu transformacijai.■ XPath – kalba skirta navigacijai XML dokumente.■ XQuery – XML dokumentu užklausu kalba.
![Page 251: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/251.jpg)
Viskas prasidejo nuo XSL
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
251 / 259
■ XSL – EXtensible Stylesheet Language.■ Jei CSS yra HTML’o stilius,■ tai XSL yra XML’o stilius ir šis tas daugiau.
![Page 252: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/252.jpg)
XLS Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
252 / 259
<?xml v e r s i o n=" 1 .0 " encod ing="UTF−8"?><x s l : s t y l e s h e e t v e r s i o n=" 1 .0 "xmlns : x s l=" ht tp : //www.w3 . org /1999/XSL/Transform ">
. . .
</ x s l : s t y l e s h e e t >
![Page 253: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/253.jpg)
XLS pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
253 / 259
<x s l : t emp la te match="/"><html> <body><h2>My CD Co l l e c t i o n </h2><t a b l e bo rde r="1">
<t r bg co l o r="#9acd32"><th>T i t l e </th> <th>A r t i s t </th>
</t r><x s l : for−each s e l e c t=" c a t a l o g /cd"><tr>
<td><x s l : va lue−o f s e l e c t=" t i t l e "/></td><td><x s l : va lue−o f s e l e c t=" a r t i s t "/></td>
</t r></ x s l : for−each>
</tab l e ></body> </html>
</ x s l : template>
![Page 254: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/254.jpg)
XML su XSL pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
254 / 259
<?xml v e r s i o n=" 1 .0 " encod ing="UTF−8"?><?xml−s t y l e s h e e t
type=" t e x t / x s l " h r e f=" cd ca t a l o g . x s l "?><ca ta l og >
<cd><t i t l e >Empire Bur l e sque </ t i t l e ><a r t i s t >Bob Dylan</a r t i s t ><country >USA</country ><company>Columbia</company><p r i c e >10.90</ p r i c e ><year >1985</year>
</cd>. . .</ca ta l og >
![Page 255: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/255.jpg)
XLS sintakse
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
255 / 259
■ template – šablonas susiejamas su tam elementu (match).■ value-of – išgauna elemento reikšmę (select).■ for-each – to paties lygmens iteratorius (select).
◆ Galima filtruoti irašus – select="catalog/cd[artist=’BobDylan’]".
◆ Operatoriai: =, !=, <, >.
■ sort – surušiuoja duomenis pagal nurodytą elementą (select).■ if – tikrinimo sąlyga: <xsl:if test="išraiška">...</xsl:if>■ choose – variantinis sakinys, naudojamas kartu su "when" ir
"otherwise"
![Page 256: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/256.jpg)
choose prototipas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
256 / 259
<x s l : choose><x s l : when t e s t=" e x p r e s s i o n ">
. . . some output . . .</ x s l : when>. . .
<x s l : o t h e rw i s e >. . . some output . . . .
</ x s l : o t h e rw i s e ></ x s l : choose>
![Page 257: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/257.jpg)
XML DTD
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
257 / 259
■ XML dokumentas su teisinga sintakse vadinamas "Geraisuformuotu".
■ XML patikrintas pagal DTD reikalavimus vadinamas dar ir"galiojančiu" (valid).
■ DTD (Document Type Definition) – XML strukturos irgaliojančiu elementu apibrežimas.
■ <!DOCTYPE note SYSTEM "Note.dtd">■ Vis dar naudojamas, nors yra pasiulytas naujesnis standartas –
XML schema.
![Page 258: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/258.jpg)
DTD Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
258 / 259
<!DOCTYPE note[<!ELEMENT note ( to , from , head ing , body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT head ing (#PCDATA)><!ELEMENT body (#PCDATA)>]>
![Page 259: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/259.jpg)
DTD interpretavimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
259 / 259
■ !DOCTYPE note – Apibrežia šaknini dokumento elementą "note"
■ !ELEMENT note – Apibrežia, kad elementas "note" privalo turetielementus: "to, from, heading, body"
■ !ELEMENT to – Apibrežia, kad elementas "to" yra "#PCDATA"tipo.
◆ #PCDATA – parseable character data.◆ #CDATA – character data.
■ Kiti elementai analogiški.
![Page 260: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/260.jpg)
DTD naudojimas
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
260 / 259
■ DTD yra neprivalomas!■ Naudojamas nesusijusiu žmoniu grupiu duomenu apsikeitimo
standartui aprašyti.■ Su DTD galima patikrinti ar gauti iš išores duomenys yra
galiojantys.■ Su DTD galima patikrinti savus duomenis.
![Page 261: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/261.jpg)
XML schema
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
261 / 259
■ Aprašo XML dokumento strukturą.■ XSD – XML Schema Definition.■ Išplečia DTD galimybes.■ Su XSD galima patikrinti 12 taisykliu.
![Page 262: Informatika IItomukas/Knygos/pavasaris.pdf · Klasiu˛ savybe˙s 1 skyrius 2 skyrius 3 skyrius 4 skyrius 5 skyrius 6 skyrius 7 skyrius 8 skyrius 9 skyrius 10 skyrius 6 / 259 Klase˙s](https://reader030.fdocuments.net/reader030/viewer/2022041021/5ed1bf97da60d73eea292892/html5/thumbnails/262.jpg)
XSD Pavyzdys
1 skyrius
2 skyrius
3 skyrius
4 skyrius
5 skyrius
6 skyrius
7 skyrius
8 skyrius
9 skyrius
10 skyrius
262 / 259
<?xml v e r s i o n=" 1 .0 "?><xs : schema
xmlns : x s=" ht tp : //www.w3 . org /2001/XMLSchema">
<xs : e l ement name=" note "><xs : complexType>
<xs : sequence><xs : e l ement name=" to " type=" xs : s t r i n g "/><xs : e l ement name=" from" type=" xs : s t r i n g "/><xs : e l ement name=" head ing " type=" xs : s t r i n g "/><xs : e l ement name="body" type=" xs : s t r i n g "/>
</xs : sequence></xs : complexType>
</xs : e lement>
</xs : schema>