| 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 | }}} |