1627 | | |
| 1627 | == vaja96 == |
| 1628 | |
| 1629 | Definiraj razred {{{Tocka}}}, ki v konstruktorju (funkcija {{{__init__}}}) sprejme koordinate {{{x}}},{{{y}}} in {{{z}}}. Nato definiraj metodo {{{koordinate}}}, ki vrne seznam. Vrnjen seznam vsebuje tri elemente: prvi element je koordinata x, drugi koordinata y in tretji koordinata z. |
| 1630 | |
| 1631 | Nato definiraj tri objekte razreda Tocka: |
| 1632 | |
| 1633 | - tocka1 s koordinatami x=1,y=0,z=0 |
| 1634 | - tocka2 s koordinatami x=2,y=0,z=0 |
| 1635 | - tocka3 s koordinatami x=3,y=0,z=0 |
| 1636 | |
| 1637 | na sledeč način |
| 1638 | |
| 1639 | {{{ |
| 1640 | #!python |
| 1641 | tocka1 = Tocka(1,0,0) |
| 1642 | tocka2 = Tocka(2,0,0) |
| 1643 | tocka3 = Tocka(3,0,0) |
| 1644 | }}} |
| 1645 | |
| 1646 | Nato definiraj nov razred {{{Krivulja}}}, ki vsebuje spremenljivko z imenom {{{seznam_tock}}}. Ta spremenljivka vsebuje prazen seznam. V razredu {{{Krivulja}}} definirajte tudi metodo {{{dodajTocko}}}, ki sprejme objekt razreda {{{Tocka}}} in ga doda v spremenljivko {{{seznam_tock}}}. Nato v istem razredu definiraj še metodo {{{tocke}}}, ki naredi iteracijo skozi seznam v spremenljivki {{{seznam_tock}}} in za vsak objekt razreda {{{Tocka}}} izpiše koordinate x,y in z. |
| 1647 | |
| 1648 | Primer izpisa metode {{{tocke}}} za točki T1(1,2,3) in T2(4,5,6) je sledeč |
| 1649 | |
| 1650 | {{{ |
| 1651 | 1 2 3 |
| 1652 | 4 5 6 |
| 1653 | }}} |
| 1654 | |
| 1655 | Definiraj objekt razreda {{{Krivulja}}} z imenom {{{krivulja}}} in vanj s pomočjo metode {{{dodajTocko}}} dodaj točke {{{tocka1}}}, {{{tocka2}}} in {{{tocka3}}}. Nato pokliči metodo {{{tocke}}} na sledeč način |
| 1656 | |
| 1657 | {{{ |
| 1658 | #!python |
| 1659 | krivulja.tocke() |
| 1660 | }}} |
| 1661 | |
| 1662 | == vaja97 == |
| 1663 | |
| 1664 | Dedovanje v Pythonu pomeni, da lahko razred deduje in uporablja metode drugega razreda. Primer je prikazan spodaj |
| 1665 | {{{ |
| 1666 | #!python |
| 1667 | #A --> Razred(parent) |
| 1668 | #B --> Izpeljanirazred(child) |
| 1669 | class A: # Definiramo razred A |
| 1670 | _vrednost = 100 |
| 1671 | def __init__(self): |
| 1672 | print("Klicanje (parent) razreda A.") |
| 1673 | def A_metoda(self): |
| 1674 | print('Klicanje metode (parent) razreda A.') |
| 1675 | def doloci_lastnost(self, lastnost): |
| 1676 | A.a_vrednost = lastnost |
| 1677 | def dobi_lastnost(self): |
| 1678 | print("Lastnost (parent) razreda A :", A.A_vrednost) |
| 1679 | |
| 1680 | class B(A): # Izpeljani razred, vzamemo lastnosti iz (parent) razreda |
| 1681 | def __init__(self): |
| 1682 | print("Klicanje konstruktorja izpeljanega razreda B.") |
| 1683 | def B_metoda(self): |
| 1684 | print('Klicanje metode izpeljanega razreda razreda B.') |
| 1685 | |
| 1686 | c = B()# Objekt (child) izpeljanega razreda B |
| 1687 | c.B_metoda()# Izpeljani razred kliče svojo metodo |
| 1688 | c.A_metoda()# Izpeljani razred kliče metodo svojega (parent) razreda |
| 1689 | c.doloci_lastnost(200)#Izpeljani razred spet kliče metodo svojega (parent) razreda |
| 1690 | c.dobi_lastnost()# Izpeljani razred spet kliče metodo svojega (parent) razreda |
| 1691 | }}} |
| 1692 | |
| 1693 | Definiraj razred {{{GeometrijskaTelesa()}}}, ki vsebuje metodo {{{opis}}} in s pomočjo funkcije {{{print}}} izpiše sledeče besedilo "Ta razred definira geometrijsko telo". Nato definiraj razrede {{{Kvader}}}, {{{Krogla}}} in {{{Valj}}}, ki dedujejo metode razreda {{{GeometrijskaTelesa}}}. |
| 1694 | |
| 1695 | Nato definiraj objekte vseh treh razredov in preko njih pokliči metodo {{{opis}}} na sledeč način |
| 1696 | |
| 1697 | {{{ |
| 1698 | #!python |
| 1699 | kvader = Kvader() |
| 1700 | krogla = Krogla() |
| 1701 | valj = Valj() |
| 1702 | |
| 1703 | kvader.opis() |
| 1704 | krogla.opis() |
| 1705 | valj.opis() |
| 1706 | }}} |