객체지향, 클래스

  1. 객체지향 개념 명사 (속성 -> 속성변수)와 동사 (행위 -> 함수)의 조합
In [28]:
class Person:
    name = ''
    age = 0
    def __init__(self):#생성자를 만드는 함수
        print('Person 생성!!')
    def print_name(self):
        print(f'제 이름은 {self.name}입니다.')
    def get_age(self):
        return self.age
In [29]:
me = Person()# Person을 생성자라고 부른다
print(me)
print(type(me))
Person 생성!!
<__main__.Person object at 0x0000026B2F51B970>
<class '__main__.Person'>
In [30]:
me.name = '홍길동'
print(me.name)
me.print_name()
me.age=990
print(me.name, '의 나이는', me.get_age(), '세', end='');
홍길동
제 이름은 홍길동입니다.
홍길동 의 나이는 990 세
In [40]:
# 생성자 수정 클래스 Person2
class Person2:
    name = ''
    age = 0
    def __init__(self, name, age):#생성자를 만드는 함수
        print('Person 생성!!')
        self.name = name
        self.age = age
    def __str__(self): #print를 변경해주는 매직 메서드
        return f'이름 : {self.name}, 나이 : {self.age}'
    def print_name(self):
        print(f'제 이름은 {self.name}입니다.')
    def print_age(self):
        print(f'제 나이는 {self.age}입니다')
In [41]:
you = Person2('박용준', 27)
you.print_name()
you.print_age()

print(you)
Person 생성!!
제 이름은 박용준입니다.
제 나이는 27입니다
이름 : 박용준, 나이 : 27