Python 05-2 OOP
◾ 클래스와 객체
type
: 공통 속성을 가진 객체들의 분류(class)
class
: 객체들의 분류(class)를 정의할 때 쓰이는 키워드
클래스 생성
- 클래스 생성은
class
키워드와 정의하고자 하는 <클래스의 이름>
으로 가능하다.
<클래스의 이름>
은 PascalCase
로 정의한다.
- 클래스 내부에는 데이터와 함수를 정의할 수 있고, 이때 정의된 함수는 메서드(method)로 불린다.
class <클래스이름>:
<메소드>
class Person:
pass
print(type(Person))
>> <class 'type'>
인스턴스 생성
- 정의된 클래스(
class
)에 속하는 객체를 해당 클래스의 인스턴스(instance)라고 한다.
Person
클래스의 인스턴스는 Person()
을 호출함으로써 생성된다.
type()
함수를 통해 생성된 객체의 클래스를 확인할 수 있다.
person1
은 사용자가 정의한(user-defined) Person
이라는 데이터 타입(data type)의 인스턴스이다.
# 인스턴스 = 클래스()
person1 = Person()
print(type(person1))
>> <class '__main__.Person'>
메서드 정의⭐⭐
- 특정 데이터 타입(또는 클래스)의 객체에 공통적으로 적용 가능한 행위(behavior)들을 의미한다.
class Person:
# 메서드(method)
def talk(self): # 인자로 self를 붙여줍니다.
return '안녕'
def eat(self, food):
return f'냠냠 {food}'
생성자메서드
-
constructor method
-
인스턴스 객체가 생성될 때 호출되는 함수
-
생성자를 활용하면 인스턴스가 생성될 때 인스턴스의 속성을 정의할 수 있다.
def __init__(self):
print('생성될 때 자동으로 호출되는 메서드입니다.')
소멸자 메서드
- desrtuctor method
- 인스턴스 객체가 소멸(파괴)되기 직전에 호출되는 함수.
def __del__(self):
print('소멸될 때 자동으로 호출되는 메서드입니다.')
속성 정의
- 특정 데이터 타입(또는 클래스)의 객체들이 가지게 될 상태/데이터를 의미한다
class Person:
def __init__(self, name):
self.name = name
def talk(self):
return f'안녕, 나는 {self.name}'
me = Person('메시호날두')
print(me.name)
>> 메시호날두
매직메서드
-
더블언더스코어(__
)가 있는 메서드는 특별한 일을 하기 위해 만들어진 메서드이기 때문에 스페셜 메서드
혹은 매직 메서드
라고 불립니다.
-
매직(스페셜) 메서드 형태: __someting__
-
__new__, __reduce__ , __reduce_ex__ , __repr__ , __rmod__ , __rmul__ , __setattr__ , __sizeof__ , __str__
-
__str__(self)
- 특정 객체를 출력(
print()
) 할 때 보여줄 내용을 정의할 수 있음
class Person:
def __str__(self):
return '객체 출력(print)시 보여줄 내용'
self
- 인스턴스 자신
- Python에서 메서드는 호출 시 첫번째 인자로 인스턴스 자신이 전달되게 설계되었다.
Author And Source
이 문제에 관하여(Python 05-2 OOP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hsngju/Python-05-2-OOP
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
type
: 공통 속성을 가진 객체들의 분류(class)
class
: 객체들의 분류(class)를 정의할 때 쓰이는 키워드
class
키워드와 정의하고자 하는 <클래스의 이름>
으로 가능하다.<클래스의 이름>
은 PascalCase
로 정의한다.class <클래스이름>:
<메소드>
class Person:
pass
print(type(Person))
>> <class 'type'>
class
)에 속하는 객체를 해당 클래스의 인스턴스(instance)라고 한다.Person
클래스의 인스턴스는 Person()
을 호출함으로써 생성된다.type()
함수를 통해 생성된 객체의 클래스를 확인할 수 있다.person1
은 사용자가 정의한(user-defined) Person
이라는 데이터 타입(data type)의 인스턴스이다.# 인스턴스 = 클래스()
person1 = Person()
print(type(person1))
>> <class '__main__.Person'>
class Person:
# 메서드(method)
def talk(self): # 인자로 self를 붙여줍니다.
return '안녕'
def eat(self, food):
return f'냠냠 {food}'
constructor method
인스턴스 객체가 생성될 때 호출되는 함수
생성자를 활용하면 인스턴스가 생성될 때 인스턴스의 속성을 정의할 수 있다.
def __init__(self):
print('생성될 때 자동으로 호출되는 메서드입니다.')
def __del__(self):
print('소멸될 때 자동으로 호출되는 메서드입니다.')
class Person:
def __init__(self, name):
self.name = name
def talk(self):
return f'안녕, 나는 {self.name}'
me = Person('메시호날두')
print(me.name)
>> 메시호날두
더블언더스코어(__
)가 있는 메서드는 특별한 일을 하기 위해 만들어진 메서드이기 때문에 스페셜 메서드
혹은 매직 메서드
라고 불립니다.
매직(스페셜) 메서드 형태: __someting__
__new__, __reduce__ , __reduce_ex__ , __repr__ , __rmod__ , __rmul__ , __setattr__ , __sizeof__ , __str__
__str__(self)
- 특정 객체를 출력(
print()
) 할 때 보여줄 내용을 정의할 수 있음
class Person:
def __str__(self):
return '객체 출력(print)시 보여줄 내용'
Author And Source
이 문제에 관하여(Python 05-2 OOP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hsngju/Python-05-2-OOP저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)