NBA_01_Beispiele_zum_Kapitel_Klassen_2¶
(c) 2024 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
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