Typo korrigiert.

This commit is contained in:
2024-11-09 16:58:16 +01:00
parent ea14cde427
commit 060c235e3f
6 changed files with 0 additions and 0 deletions

1
getattr/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
__pycache__

17
getattr/Kreis.py Normal file
View File

@@ -0,0 +1,17 @@
from math import pi as pi
class Kreis:
def __init__(self, radius):
self.radius = radius
def durchmesser(self):
return self.radius * 2
def umfang(self):
return self.durchmesser() * pi
def flaeche(self):
return self.radius** 2 * pi

19
getattr/Kreis_getattr.py Normal file
View File

@@ -0,0 +1,19 @@
from math import pi as pi
class Kreis_getattr:
def __init__(self, radius):
self.radius = radius
self.operators ={
'durchmesser': lambda x: self.radius * 2,
'umfang': lambda x: self.durchmesser * pi,
'flaeche': lambda x: self.radius**2 *pi
}
def __getattr__(self, name):
if name not in self.operators:
raise TypeError(f'unbekannte Operation {name}')
return self.operators[name](0)

17
getattr/name.py Normal file
View File

@@ -0,0 +1,17 @@
class Name:
def __init__(self,vorname,name):
self.vorname = vorname
self.name = name
def __getattr__(self,attr):
if attr == 'fullname':
return self.vorname + ' ' + self.name
elif attr == 'sortname':
return self.name + ',' + self.vorname
else:
raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{attr}'")

36
getattr/testKreis.py Normal file
View File

@@ -0,0 +1,36 @@
import unittest
import Kreis
import Kreis_getattr
class TestKreis(unittest.TestCase):
def setUp(self):
self.kreis = Kreis.Kreis(1)
self.kreis_getattr = Kreis_getattr.Kreis_getattr(1)
def test_Umfang(self):
umfang = self.kreis.umfang()
umfang_getattr = self.kreis_getattr.umfang
print(f'kreis Umfang {umfang}')
print(f'kreis_gettattr Umfang {umfang_getattr}')
self.assertEqual(umfang, umfang_getattr)
def test_Flaeche(self):
flaeche = self.kreis.flaeche()
flaeche_getattr = self.kreis_getattr.flaeche
print(f'kreis Fläche {flaeche}')
print(f'kreis_gettattr Fläche {flaeche_getattr}')
self.assertEqual(flaeche, flaeche_getattr)
def test_Durchmesser(self):
durchmesser = self.kreis.durchmesser()
durchmesser_getattr = self.kreis_getattr.durchmesser
print(f'kreis Durchmesser {durchmesser}')
print(f'kreis_gettattr Durchmesser {durchmesser_getattr}')
self.assertEqual(durchmesser, durchmesser_getattr)
if __name__ == '__main__':
unittest.main()

28
getattr/testname.py Normal file
View File

@@ -0,0 +1,28 @@
import unittest
import logging
from name import Name
__LOGLEVEL__ = logging.DEBUG
logging.basicConfig( format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s', level=__LOGLEVEL__)
class TestName(unittest.TestCase):
def setUp(self):
logging.debug('setting up test')
self.name = Name('Homer', 'Simpson')
def test_getattr(self):
fullname = self.name.fullname
sortname = self.name.sortname
self.assertEqual('Homer Simpson', fullname)
self.assertEqual('Simpson,Homer', sortname)
if __name__ == '__main__':
logging.debug('Test startet.')
unittest.main()