Witam ponownie . Zacząłem się bawić w obiektówkę . Przykładowo mam kod proceduralny z liczeniem wieku :
import datetime
def pobierz_imie():
return input('podaj imie: ')
def pobierz_rok_urodzenia():
return int(input('podaj rok urodzenia: '))
def policz_ile_lat(rok_urodzenia, aktualny_rok):
return aktualny_rok - rok_urodzenia
def odpowiedz_uzytkownikowi(imie, wiek):
print(f'Czesc {imie}! Masz {wiek} lat.')
while True:
imie = pobierz_imie()
rok_urodzenia = pobierz_rok_urodzenia()
aktualny_rok = datetime.datetime.now().year
wiek = policz_ile_lat(rok_urodzenia, aktualny_rok)
odpowiedz_uzytkownikowi(imie, wiek)
Kod w obiektówce:
import datetime
class Dane:
def __init__(self):
self.imie = self.Pobierz_imie #konstruktor/ - powinno być self.imie = imie /jak takzrobię mam bład
self.rok_urodzenia = self.pobierz_rok_urodzenia()
self.aktualny_rok = datetime.datetime.now().year
self.wiek = self.policz_ile_lat(self.rok_urodzenia, self.aktualny_rok)
self.odpowiedz_uzytkownikowi(self.imie, self.wiek)
def Pobierz_imie(self):
return input('Podaj imie: ')
def pobierz_rok_urodzenia(self):
return int(input('podaj rok urodzenia: '))
def policz_ile_lat(self,rok_urodzenia, aktualny_rok):
return self.aktualny_rok - self.rok_urodzenia
def odpowiedz_uzytkownikowi(self,imie,wiek):
print(f'Czesc {self.imie}! Masz {self.wiek} lat.')
def wyswietl(self):
#print(self.Pobierz_imie,self.pobierz_rok_urodzenia,self.odpowiedz_uzytkownikowi,self.policz_ile_lat)
print(self.imie,self.aktualny_rok,self.rok_urodzenia,self.wiek)
dane1 = Dane()
dane1.wyswietl()
I ten program próbuję przekształcić w typową obiektówkę... Niby wynik obliczenia wieku mi wychodzi (z błedami) , ale nie mam pytania o imie, żebym podał.... Tylko od razu pytanie o rok urodzenia... Czy w konstruktorze klasy dobrze dodałem te wszystkie "dane"? Powinno być self.imie = imie, self.rok_urodzenia = rok_urodzenia itp..., a zrobiłem trochę inaczej ! Czy jest możliwość całkowitego przerobienia tego programu w typową "obiektówkę" Ogólnie czy dobrze kombinuję, jeśli chodzi o przerobienie tego kodu na obiektówkę? Chętnie bym zobaczył prawidlowy kod obiektowy według was, zebym sobie porównał lub wskazówki co robię zle. Pozdrawiam