TI/Skrypty z zajęć/k6

Z Brain-wiki
Wersja z dnia 19:51, 27 maj 2020 autorstwa Tgub (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
# -*- coding: utf-8 -*-
"""
Created on Wed May 27 11:11:31 2020

@author: Tomek
"""

class CiagArytmetyczny():
    def __init__(self, a1, r):
        self.__a1 = float(a1)
        self.__r = float(r)

    def __get_a1__(self):
        return self.__a1

    def __get_r__(self):
        return self.__r
    
    def __set_a1__(self, a1):
        self.__a1 = float(a1)

    def __set_r__(self, r):
        self.__r = float(r)
    
    a1 = property(__get_a1__,__set_a1__)
    r = property(__get_r__,__set_r__)
    
    def __getitem__(self,n):
        if isinstance(n,int):
            if (n > 0):
                return self.__a1 + (n-1)*self.__r
    
    def __add__(self, other):
        return CiagArytmetyczny(self.a1 + other.a1, self.r + other.r)

    def __str__(self):
        return 'CiagArytmetyczny a1 = '+str(self.__a1)+' r = '+str(self.__r)
    
    def __repr__(self):
        return str(self)
    
z = CiagArytmetyczny(1,1)
x = CiagArytmetyczny(100,1)

class CiagArytmetycznyZeSlownikiem(CiagArytmetyczny):
    
    def __init__(self, a1, r, sl = None):
        #self(ale potraktuj mnie jako obiekt klasy CiagAtrytmetyczny).__init__(a1,r)
        super().__init__(a1,r)
        self.__sl = sl
        if self.__sl==None:
            self.__sl = {}
        
    
    def __setitem__(self, key, value):
        self.__sl[key] = value
        
    @property
    def sl(self):
        return self.__sl.copy()

    def __str__(self):
        return 'CiagArytmetycznyZeSlownikiem a1 = '+str(self.a1)+' r = '+str(self.r)+' oraz sl = '+ str(self.sl)
    
    def __add__(self, other):
        return CiagArytmetycznyZeSlownikiem(self.a1 + other.a1, self.r + other.r)


y = CiagArytmetycznyZeSlownikiem(50,1)

class CiagArytmetycznyR1(CiagArytmetyczny):
    def __init__(self, a1):
        super().__init__(a1,1)