[Python] Python Object Oriented Programming

Jeonghyun·2022년 9월 20일
0

Python 이론

목록 보기
3/9

Object Oriented Programming(OOP)
객체 지향 프로그래밍 언어

  • 객체 : 실생활에서 물건에 해당
    속성행동을 가짐
  • 클래스(class)(설계도)와 실제 구현체 인스턴스(instance)로 나눔
class PersonalInfo(object):class 이름은 띄어쓰기 부분에 대문자 사용

attribute 추가는 __init__ , self와 함께

__init__은 객체 초기화 예약 함수

class PersonalInfo(object):
	def __init__(self, name, age, gender):
    	self.name = name
        self.age = age
        self.gender = gender

method 구현

self를 추가해야만 class 함수로 인정

class PersonalInfo(object):
	def change_age(self, new_age):
    	print(f"{self.age}에서 {new_age}으로 이름 변경 완료")
        self.age = new_age

Object 선언과 초기값 입력

jeonghyun = PersonalInfo("jeonghyun", "25" "male") # 객체 선언
print("나이 : ", jeonghyun.age) # 객체의 attribute 불러오기
jeonghyun.change_age(26) # method 사용

📝 전체 코드

class PersonalInfo(object):
	def __init__(self, name, age, gender):
    	self.name = name
        self.age = age
        self.gender = gender

	def change_age(self, new_age):
    	print(f"{self.age}에서 {new_age}으로 이름 변경 완료")
        self.age = new_age
        
jeonghyun = PersonalInfo("jeonghyun", "25" "male") 
print("나이 : ", jeonghyun.age)
jeonghyun.change_age(26) 

inheritance 상속

부모 클래스로 부터 속성과 method를 물려받은 자식 클래스를 생성

class PersonalInfo(object):
	def __init__(self, name, age, gender):
    	self.name = name
        self.age = age
        self.gender = gender
        
    def about_me(self): # method 선언
        print("저는", self.name, "이고" ...")
        
class Addtional(PersonalInfo):  # 부모 클래스로부터 상속
	def __init__(self, name, age, gender, address):
    	super().__init__(name, age, gender) # super() = 부모 객체 사용
        self.address
        
    def about_me(self):
    	super().about_me() # 부모 클래스의 함수 사용
        print("사는 곳은", self.address, "입니다.")
        
me = PersonalInfo("jeong", 25, "male", "Seoul")
me.about_me()
>>>
저는 ...
사는 곳은 ...

polymorphism 다형성

  • 같은 이름이지만 내부 조직을 다르게 작성하여 다른 역할을 하게

visibility 가시성

  • 객체 정보를 볼 수 있는 레벨을 조절(캡슐화)
    attribute 앞에 __ -> private 변수로 선언, 타객체가 접근 x

first-class objects

  • 일등함수, 일급 객체
  • 함수를 변수로 사용, 파라메터로 사용

inner function

  • 함수 내에 또 다른 함수 존재
  • closures : inner function을 return

decorator function

  • 복잡한 closures를 간단하게





[부스트캠프 AI Tech] Week 1 - Day 2

0개의 댓글