Informatika2-2013/Gyakorlat13

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2013. május 7., 02:25-kor történt szerkesztése után volt.

Egy új függvény

class A:
    pass
 
class B:
    pass
 
a = A()
 
print isinstance(a, A) #True
print isinstance(a, B) #False

Feladat

[ kezdeti file normal] [ kezdeti file hard]

Két osztályt kell megírni, melyek közt elég erõs kapocs van. Az osztályok:

  • Ember: egy ember, dolgozó, vagy ilyesmi reprezentálása, neve van, neptun kódja, neme, kora, és telefonszámai
  • Csoport: több Ember-bõl állhat, külön megnevezése van, tárolja a csoport létszámát is

Az osztályokat úgy kell megírni, hogy két Ember-t összeadva egy Csoport-ot kapjunk, egy Csoport és egy Ember összegeként is értelemszerûen azt a Csoport-ot kapjuk amihez hozzávettük az adott Ember-t. Végül két Csoport összegeként az úniójukat kell vennünk.

Valamint szeretnénk még kivonást is írni, ami két halmaz különbsége szerûen mûködik.

Az Ember függvényei:

  • __init__(...): létrehozza (és beállítja) a nev, neptun, nem (stringek), kor (egész), tel (stringek listája) adattagokat.
  • szuletesnap(self):: lépteti eggyel a kor-t
  • ujTelefonszam(self, szam): felvesz egy új telefonszámot a telefonszám listába
  • torolTelefonszam(self, szam): töröl egy telefonszámot, használjuk a listák .remove(x) metódusát, ami törli az x elemet (nem az x.-et)
  • __add__(self, jobboldal): megvalósítja a korábban leírt összeadást
  • __eq__(self, jobboldal): a kényelem miatt írjuk meg (ez az == operátor), igazat ad, ha a két Ember neptunkódja megegyezik, amúgy hamisat
  • __repr__(self): ismét kényelem kedvéért

A Csoport függvényei:

  • __init__(...): létrehozza (és beállítja) a lista (Ember-ek listája), megnevezés (string) és letszam (egész) adattagokat
  • atnevez(self, megnevezes): átnevezi a Csoportot
  • __add__(self, jobboldal): megvalósítja a fent leírt összeadást
  • __sub__(self, jobboldal): megvalósítja a fent leírt kivonást
  • __repr__(self): a kényelem kedvéért
Személyes eszközök