object(= instance) : 객체 지향 프로그래밍 object oriented programming
data type = class
Method (= Member Function)
isinstance(사례, type or 만든 class)
class에 있는 method 호출하는 방법
1. 객체 이름.method() => 사실 self로 주어지기에 동일함
2. 클래스 이름.method(입력 parameter로 변수 입력)
많은 객체가 형성되다 보니 method 입장에서는 어떤 객체가 자신을 불렀는 지 알아야 하기에, self를 첫번재 매개변수로 입력
가장 위의 object를 모두 상속 받음 => 모든 class들은 object의 후예
조상의 것을 접근할 때는 super()로 불러왔지만, 사용할 때는 하위 class로 불러와도 됨!
class variable vs instance variable
class variable : class가 가지는 값
- 주로 처음 값을 0으로 설정하고 constructor가 호출될 때마다 +1을 해서 해당 class에서 만들어지는 전체 객체의 수를 파악하는 데 쓰임
instance variable : 객체에 저장하는 변수
class variable
instance variable
클래스 자체의 내용을 출력하고 싶을 때(init에서 규정한), 형식을 지정하는 메서드
객체 자체를 출력할 때 넘겨주는 형식을 지정해주는 메서드이다.
파이썬에서 어떤 값을 문자열로 변환하는데 사용하는 str()은 내장함수가 아닌 파이썬 내장 클래스이며, 객체를 만들고 그 객체의 정보(class 이름, 저장 위치)를 알고 싶을 때 print(객체이름)를 사용하는데, 이는 object 클래스의 __str__메서드가 호출되어 반환된 문자열 정보이다.
class Blog():
def __init__(self, title, date):
self.title = title
self.date = date
def __str__(self):
return '제목: {}, 날짜: {}'.format(self.title, self.date)
blog = Blog('파이썬 공부', 200724)
print(blog)
>>> 제목: 파이썬 공부, 날짜: 200724
__init__메서드에서 정의한 내용이 __str__메서드로 적용되는 과정
==이 호출되면, python에서는 eq 메서드를 찾음
eq 메서드가 정의가 안 되면, 기능 수행 불가
사용자가 mmodule로 작업을 하다,
import importer
import.reload(해당 모듈)
Private variables and methods
polymorphism 다형성
하나의 모습인 것 같지만 실제로 실행하면 서로 다른 동작을 수행하는 것
생성자, 비교 연산자 __add__, __sub__
=> 파이썬에 이미 이름이 정해진 method가 어느 연산자와 매칭되는지 dir로 int나 float를 하면 add나 sub가 있음