sobota 2. února 2019

python abstrakce


python a pouzivani abstraktnich metod


#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Bohuslav Holcek
# @Date:   2019-02-02 21:24:06
# @Last Modified time: 2019-02-02 22:58:03
# @Email: tisovak@gmail.com
# @License GPL
# run mypy dany soubor pro statickou analyzu
##################################################

import abc  # zavolame modul pro abstract metody


##
# @brief      abstraktni trida
##
class Total(metaclass=abc.ABCMeta):

    @abc.abstractmethod
    #
    # @param      self  The object
    #
    # @return     { nevraci nic je abstraktni }
    #
    def tiskni(self) -> None:  # tady je type hinting
        pass

    @abc.abstractmethod
    def tiskniHezky(self) -> None:
        pass


class Hlavni(Total):
    """
    Tato trida vychazi z abstraktni tridy Total
    """

    ##
    # @brief      Constructs the object.
    ##
    # @param      self  The object
    # @param      meno  The meno
    ##
    def __init__(self, meno: str):
        self.meno = meno

    ##
    # @brief      { budeme tisnkout }
    ##
    # @param      self  The object
    ##
    # @return     { Nevraci zadnou hodnotu vynucene }
    ##
    def tiskni(self) -> None:
        print(self.meno)

    ##
    # @brief      { a jeste jednu funkci jen tak pro radost}
    ##
    # @param      self  The object
    ##
    # @return     { Taky zadna navratova hodnota vynucene z abc }
    ##
    def tiskniHezky(self) -> None:
        print("mame")


mama = Hlavni("jozef")
mama.tiskni()


##
# @brief      A jeste aby byla sranda to zkusime na dalsi tride
##
class Dedic(Total):

    ##
    # @brief      { jeste jedna trida ktera vychazi z Total }
    ##
    # @param      self  The object
    ##
    # @return     { Nic }
    ##
    def __init__(self, meno: str):
        self.meno = meno

    def tiskniHezky(self) -> None:
        print(self.meno + "hezky")

    def tiskni(self) -> None:
        print(self.meno)


tata = Dedic("kamarad ze skoly")
tata.tiskniHezky()



Žádné komentáře:

Okomentovat