Inheritance Polymorphism Visibility
초기의 상속은 object가 기본 / 써주지 않아도 상속을 받는다.
파이썬3에서의 object 상속은 표기상의 차이 이외에 상속 관계가 없는 클래스 선언과 아무런 차이가 없다.
파이썬 2 (정확히는 2.2 이상) 에서는 클래스에 object를 명시적으로 상속시켜 줘야 비로소 우리가 파이썬 3에서 흔히 쓰는 클래스가 된다.
파이썬 3 코드에서 굳이 object를 상속시켜 주는 이유는 대개 파이썬 2와의 호환성 혹은 작성 취향 때문이다.
1) 객체를 사용하는 사용자가 임의로 정보 수정
2) 필요없는 정보에는 접근할 필요가 없음
3) 만약 제품으로 판매한다면? 소스의 보호 -> 요즘은 의미있는 것은 아님
= Encapsulation (캡슐화 또는 정보 은닉)
class Inventory(object):
def __init__(self):
self.__items = []
@property # property decorator 숨겨진 변수를 반환하게 해줌
def items(self):
return self.__items
-> 파이썬은 일급함수
ㄴ square 함수를 변수로 사용
def square(x):
return x * x
def cube(x):
return x * x * x
def formula(method, argument_list):
return [method(value) for value in argument_list]
def print_msg(msg): #(2)
def printer(): #(4)
print(msg)
return printer # 일급함수이기 때문에 함수 자체가 return 가능
another = print_msg('Hello, Python')
another()
이거 보고 이해하기!