Coding 공부/Python

[Python_summary] 클래스 예제

CBJH 2024. 1. 19.
728x90
반응형
# abs() 함수

소괄호 안의 값을 절대값을 취해 양수를 보내준다.

 

Calculator 클래스를 상속받는 UpCal 클래스 예제(계산기)

 

# 오버라이드 (Override)

  • 정의: 상속 관계에 있는 클래스에서 부모 클래스의 멤버 함수와 동일한 이름, 반환 타입, 매개변수를 가진 함수를 자식 클래스에서 재정의하는 것을 말합니다.
  • 목적: 자식 클래스에서 부모 클래스의 기능을 확장하거나 변경하고자 할 때 사용합니다.

클래스 변수와 객체 변수, 지역 변수의 구분 예제

만약 생성자에 self.var1이 없다면 print(m2.var1)은 클래스 변수를 불러와 출력하게된다. 이런 것을 오버라이딩이라고 한다.(메소드 오버라이딩 뿐만 아니라 변수 오버라이딩도 있다) 실무에선 헷갈리게 var1으로 사용해서 혼동되는 경우를 피하겠지만 개념 공부를 위한 예제이다.

 

# 오버로딩(Overloading)

 오버로딩은 메서드 오버로딩과 생성자 오버로딩이 있습니다. 하지만 둘 다 같은 개념이에요.

같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게됩니다.

출처: https://private.tistory.com/25 [오토봇팩토리:티스토리]

 

# 오버라이딩(Overriding)

 

 상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메서드도 하위 클래스로 상속되어 하위 클래스에 사용할 수 있습니다. 또한, 하위 클래스에서 메서드를 재정의해서도 사용할 수 있습니다.

쉽게 말해 메서드의 이름이 서로 같고, 매개변수가 같고, 반환형이 같을 경우에 상속받은 메서드를 덮어쓴다고 생각하시면 됩니다. ' 부모클래스의 메서드는 무시하고, 자식 클래스의 메서드 기능을 사용하겠다'와 같습니다.

출처: https://private.tistory.com/25 [오토봇팩토리:티스토리]

 

# 가변인자(variable arguments)

함수가 임의의 개수의 인자를 처리할 수 있게 하는 매커니즘입니다. 두 가지 종류의 가변인자가 있습니다: 위치 인자와 키워드 인자입니다. 따라서 파이썬에서는 오버로딩을 명시적으로 지원하진 않는다. 가변인자를 사용하면 매개변수의 유형과 개수를 다르게 적용할 수 있기 때문이다.

 

지역변수와 객체 변수 응용 및 클래스 상속 예제

' and '.join(튜플 자료형 또는 리스트 자료형)
            
튜플 또는 리스트 자료형에 들어간 요소들을 따옴표 사이에 있는 문자열을 구분자로해서 하나의 문자열로 만들어준다.
raise NotImplementedError("내용") 
               
메서드나 기능이 구현되지 않았을 경우 내용을 출력한다.

 

 

 

super().메서드명(인자)     
       
부모 클래스에 있는 메서드에 있는 코드를 한번 더 작성할 필요없이 불러와서 사용할 수 있다.

 

 

 

1. Shape 클래스 만들기 permeter, area 메서드 포함 (raise NotImplementedError 사용, 상속받는 클래스가 두가지 메서드를 꼭 포함하도록 강제)
2. 사각형 클래스 만들기 permeter, area 메서드 가변인자로 받아와 생성한다.(오버라이딩 : 부모 클래스의 메서드 위에 덮어씀)
3. 원 클래스 만들기 permeter, area 메서드 가변인자로 받아와 생성한다.
4. 추가사항 import로 pi가 포함된 모듈을 받아와서 원 넓이 계산하기
import math   #모듈을 불러와서                  
math.pi          #사용하기
:.2f를 사용하면 long이나 float 자료형을 소수점 2자리까지 표현가능하다
예제)
print(f"{실수 자료형:.2f}")

댓글