Informatika2-2012/Gyakorlat10m

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „<python> #!/usr/bin/env python class Jegyzet(str): # def konstruktor atirasa # ebben az esetben felesleges, mert a string-tol szarmazik le # a string pedig…”)
 
 
21. sor: 21. sor:
 
     def __add__(self, j):
 
     def __add__(self, j):
 
         if isinstance(j, Jegyzettomb):
 
         if isinstance(j, Jegyzettomb):
             # super(self, Jegyzettomb).__add__(j)
+
            # vagy super segitsegevel hivjuk az os osztaly konstruktorat
 +
            # (!!! ilyenkor kell hogy hogy az object is benne legyen az orok listajaba!!!),
 +
            # vagy az orokolt list osztaj add fv.-t hivjuk meg direkt (neh)
 +
             # super(self, Jegyzettomb).__add__(self, j)
 
             list.__add__(self, j)
 
             list.__add__(self, j)
 
         else:
 
         else:

A lap jelenlegi, 2012. május 1., 13:34-kori változata

#!/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):
            # vagy super segitsegevel hivjuk az os osztaly konstruktorat
            # (!!! ilyenkor kell hogy hogy az object is benne legyen az orok listajaba!!!),
            # vagy az orokolt list osztaj add fv.-t hivjuk meg direkt (neh)
            # super(self, Jegyzettomb).__add__(self, 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