class Osoba:
    def __init__(self, imie, nazwisko):
        self.imie = imie
        self.nazwisko = nazwisko

    def przedstaw_sie(self):
        print(f'Heloł, nazywam się {self.imie} {self.nazwisko}')


a = Osoba('Ala', 'Kowalska')
b = Osoba('Basia', 'Malinowska')

print(a, b)
print('Obiekty są typu', type(a))
print()

print('Pierwsza osoba to', a.imie, a.nazwisko)
print('Druga osoba to', b.imie, b.nazwisko)
print()

# Na funkcję zdefiniowane wewnątrz klasy mówi się "metoda"
# Metody zazwyczaj wywołuje się na konkretnych obiektach.
a.przedstaw_sie()
b.przedstaw_sie()
# Funkcji zdefiniowane w klasie nie da się wywołać w zwykły sposób
# przedstaw_sie()
# To zadziała: Wywołanie poprzez nazwę klasy, ale wtedy parametr self trzeba przekazać jawnie
Osoba.przedstaw_sie(a)

print()
