Informatika2-2012/Gyakorlat10m

A MathWikiből
A lap korábbi változatát látod, amilyen Stma (vitalap | szerkesztései) 2012. május 1., 13:28-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
#!/usr/bin/env python
 
class Jegyzet(str):
    # def konstruktor atirasa
    # ebben az esetben felesleges, mert a string-tol szarmazik le
    # a string pedig eleve ami eleve egy sorozatot var parameternek
    #def __init__(self, s=[])
    #    self.__data__ = str(s)
    pass
 
class Jegyzettomb(list, object):
    # mivel a lista leszarmazotja igy meg van valositva a
    # __len__, __getitem__, __iter__
    def __init__(self, s = None):
        if isinstance(s, str):
            self.append(s)
 
    # mivel a lista + operatora sorozatot var parameternek
    # azt felul kell definialni
    def __add__(self, j):
        if isinstance(j, Jegyzettomb):
            # super(self, Jegyzettomb).__add__(j)
            list.__add__(self, j)
        else:
            if isinstance(j, Jegyzet):
                self.append(j)
                return self
 
    # generator keszitese
    def create_gen(self):
        for i in self:
            yield i
 
 
j1 = Jegyzet('vegyel legot')
j2 = Jegyzet('vegyel kubut')
j3 = Jegyzet('vegyel viragot')
 
jt1 = Jegyzettomb("vidd le a szemetet")
jt2 = Jegyzettomb()
 
jt2 + j1 + j2 + j3
 
print '----------------------------------'
 
for i in jt2.create_gen():
    print i
 
print '----------------------------------'
jt1 += jt2
 
for i in jt1:
    print i
Személyes eszközök