NBA_01_Beispiele_zum_Kapitel_Klassen_2

(c) 2020/2021 Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever

In [1]:
class Person():
    def __init__(self, nachname, vorname, geburtsdatum):
        self.Nachname = nachname
        self.Vorname = vorname
        self.Geburtsdatum = geburtsdatum
In [2]:
Max = Person("Mustermann", "Maximilian", "10.4.1993")
Max.Geburtsdatum
Out[2]:
'10.4.1993'
In [3]:
import datetime
datetime.date(1993,4,10)
Out[3]:
datetime.date(1993, 4, 10)
In [4]:
Erich = Person("Mustermann", "Erich", datetime.date(1991,6,20))
Erich.Geburtsdatum
Out[4]:
datetime.date(1991, 6, 20)
In [5]:
datum = "1995-5-12"
datetime.datetime.strptime(datum, "%Y-%m-%d").date()
Out[5]:
datetime.date(1995, 5, 12)
In [6]:
class Person():
    def __init__(self, nachname, vorname, geburtsdatum):
        self.Nachname = nachname
        self.Vorname = vorname
        if isinstance(geburtsdatum, datetime.date):
            self.Geburtsdatum = geburtsdatum
        elif isinstance(geburtsdatum, str):
            self.Geburtsdatum = datetime.datetime.strptime(geburtsdatum, "%Y-%m-%d").date()
In [7]:
Max = Person("Mustermann", "Maximilian", "10.4.1993")
Max.Geburtsdatum
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-5fbe6e83ac90> in <module>()
----> 1 Max = Person("Mustermann", "Maximilian", "10.4.1993")
      2 Max.Geburtsdatum

<ipython-input-6-2a407273e14c> in __init__(self, nachname, vorname, geburtsdatum)
      6             self.Geburtsdatum = geburtsdatum
      7         elif isinstance(geburtsdatum, str):
----> 8             self.Geburtsdatum = datetime.datetime.strptime(geburtsdatum, "%Y-%m-%d").date()

/home/student/anaconda3/lib/python3.5/_strptime.py in _strptime_datetime(cls, data_string, format)
    508     """Return a class cls instance based on the input string and the
    509     format string."""
--> 510     tt, fraction = _strptime(data_string, format)
    511     tzname, gmtoff = tt[-2:]
    512     args = tt[:6] + (fraction,)

/home/student/anaconda3/lib/python3.5/_strptime.py in _strptime(data_string, format)
    341     if not found:
    342         raise ValueError("time data %r does not match format %r" %
--> 343                          (data_string, format))
    344     if len(data_string) != found.end():
    345         raise ValueError("unconverted data remains: %s" %

ValueError: time data '10.4.1993' does not match format '%Y-%m-%d'
In [8]:
Max = Person("Mustermann", "Maximilian", "1993-4-10")
Max.Geburtsdatum
Out[8]:
datetime.date(1993, 4, 10)
In [9]:
Erich = Person("Mustermann", "Erich", datetime.date(1991,6,20))
Erich.Geburtsdatum
Out[9]:
datetime.date(1991, 6, 20)
In [10]:
import locale
locale.getlocale()
Out[10]:
('de_DE', 'UTF-8')
In [11]:
locale.setlocale(locale.LC_ALL, locale.getlocale())
Out[11]:
'de_DE.UTF-8'
In [12]:
print(Max.Geburtsdatum)
1993-04-10
In [13]:
print(Max.Geburtsdatum.strftime("%Y/%m/%d"))
1993/04/10
In [14]:
print(Max.Geburtsdatum.strftime("%x"))
10.04.1993
In [15]:
datum = "5.10.1992"
datetime.datetime.strptime(datum,"%x").date()
Out[15]:
datetime.date(1992, 10, 5)
In [16]:
class localDate(datetime.date):
    def __str__(self):
        return self.strftime("%x")
In [17]:
datum = localDate(1994,8,12)
print(datum)
12.08.1994
In [18]:
datum = datetime.date(1994,8,12)
print(datum)
1994-08-12
In [19]:
class localDate(datetime.date):
    def __str__(self):
        return self.strftime("%x")
    
    def alter(self):
        return (datetime.date.today().year - self.year)
In [20]:
geburtsdatum = localDate(1993,4,10)
geburtsdatum.alter()
Out[20]:
24
In [21]:
class Kraftfahrzeug():
    _kmStand = 0
    
    def __init__(self, marke, typ, fahrzeugid, herstellungsdatum):
        self.Marke = marke
        self.Typ = typ
        self.FahrzeugId = fahrzeugid
        self.Herstellungsdatum = herstellungsdatum
        
    def kmstand(self, kmstand=None):
        if kmstand:
            self._kmStand = kmstand
        return self._kmStand
    
    def zulassung(self, kennzeichen, besitzer, zulassungsdatum):
        self.Kennzeichen = kennzeichen
        self.Besitzer = besitzer
        self.Zulassungsdatum = zulassungsdatum
        
class PKW(Kraftfahrzeug):
    _Kraftfahrzeugklasse = "Personenkraftwagen"
    
    def sitze(self, anzahl):
        self.Sitzplätze = anzahl
        
class LKW(Kraftfahrzeug):
    _Kraftfahrzeugklasse = "Lastkraftwagen"
    
    def zuladung(self, gewicht):
        self.Zuladungsgewicht = gewicht
In [22]:
herstellungsdatum = localDate(2004,10,1)
vwgolf = PKW("VW", "Golf", "GTD27507037364", herstellungsdatum)
vwgolf.sitze(5)
In [23]:
Wolfi = Person("Engelmann","Wolfgang",localDate(1985,2,17))
In [24]:
print("{} {} ist {} Jahre alt und kauft".format(Wolfi.Vorname,Wolfi.Nachname,Wolfi.Geburtsdatum.alter()))
print("das {} Jahre alte, {}-sitzige Fahrzeug vom Typ {} {} mit der FahrzeugId {}".format(vwgolf.Herstellungsdatum.alter(),vwgolf.Sitzplätze,vwgolf.Marke,vwgolf.Typ,vwgolf.FahrzeugId))
Wolfgang Engelmann ist 32 Jahre alt und kauft
das 13 Jahre alte, 5-sitzige Fahrzeug vom Typ VW Golf mit der FahrzeugId GTD27507037364
In [25]:
zulassungsdatum = localDate(2016,11,12)
vwgolf.kmstand(65478)
vwgolf.zulassung("MM-HS-2016",Wolfi,zulassungsdatum)
In [26]:
print("Er meldet es am {} bei einem Km-Stand von {} mit dem Kennzeichen {} an".format(vwgolf.Zulassungsdatum,vwgolf.kmstand(),vwgolf.Kennzeichen))
Er meldet es am 12.11.2016 bei einem Km-Stand von 65478 mit dem Kennzeichen MM-HS-2016 an