혼자공부하는 파이썬 (7) - 클래스

Backend, DataEngineer·2021년 11월 8일
0
post-thumbnail

객체

'속성(attribute)과 '행동'(action)으로 이루어짐
예: 자동차: 바퀴 4개, 색깔, 의자, 핸들 등의 속성(attribute) 전진, 후진 등의 행동(action)을 가진 객체
파이썬에서 객체는 변수와 함수(method)로 이루어져있다.

클래스

객체를 조금 더 효율적으로 생성하기 위해서 만들어진 구문

class 클래스 이름:
	클래스 내용

클래스 생성자

인스턴스 이름(변수 이름) = 클래스 이름() # 생성자 함수

클래스를 기반으로 만들어진 객체를 인스턴스라고 한다

생성자
클래스 이름과 같은 함수를 생성자라고 한다. 클래스 내부에 __init__ 이라는 함수를 만들면 객체를 생성할 때 처리할 내용을 작성할 수 있다.

class 클래스 이름:
	def \__init__(self, 추가적인 매개변수): #클래스 내부의 함수는 첫 번째 매개변수로 반드시 self를 입력해야 한다
    	pass

메소드
클래스가 가지고 있는 함수를 메소드 라고 한다.

class 클래스 이름:
	def 메소드 이름(self, 추가적인 매개변수): #클래스 내부의 함수는 첫 번째 매개변수로 반드시 self를 입력해야 한다
    	pass

클래스 변수

class 클래스 이름:
	클래스 변수 =

접근시

클래스 이름.변수 이름

프라이빗 변수 : 클래스 내부의 변수를 외부에서 사용하는 것을 막고 싶을 떄 인스턴스 변수 이름을 __변수이름 형태로 선언한다.

게터와 세터 : 프라이빗 변수에 간접적으로 접근할 수 있는 방법, 데코레이터를 사용하여 만든다.

class Car:
    def __init__(self):
        self.__horsepower = 100

    @property 
    def horsepower(self):   #getter
        return self.__horsepower

    @horsepower.setter 
    def horsepower(self, str): #setter
        self.__horsepower = str

상속

  • 클래스를 부모와 자식으로 나눈 후 부모클래스의 내용을 자식이 가져다 쓸 수 있는 것을 의미
  • 상속을 해주는 클래스가 부모
  • 상속을 받는 클래스가 자식

출처: https://rednooby.tistory.com/54 [개발자의 취미생활]

상속예제

class Parent:
	def __init__(self)
    		self.value="테스트"
        	print("Parent 클래스의 __init()__ 메소드가 호출되었습니다 ")
	def test(self):
    		print("Parent 클래스의 test() 메소드입니다.")

class Child(Parent)
	def __init__(self):
    		Parent.__init__(self)
        	print("Child 클래스의 __init()__ 메소드가 호출되었습니다.")

child = Child()
child.test()
print(child.value)

결과

Parent 클래스의 __init()__ 메소드가 호출되었습니다 
Child 클래스의 __init()__ 메소드가 호출되었습니다.
Parent 클래스의 test() 메소드입니다.
테스트

상속 super() 관련 참고자료

https://rednooby.tistory.com/56

profile
오늘 더 좋은 사람, 더 좋은 하루

0개의 댓글

관련 채용 정보