Notice
Recent Posts
Link
Tags
- DI
- Django
- jpa
- spring
- 자바
- spring security 6
- static
- PYTHON
- 1차원 배열
- join
- java
- Docker
- 데이터베이스
- sql
- spring boot
- 스프링
- SSL
- springboot
- AWS
- 스프링부트
- hibernate
- ORM
- @transactional
- 문자열
- mysql
- nginx
- 프로그래머스
- string
- spring mvc
- select
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Archives
개발하는 자몽
[Python] 메소드 오버라이딩 본문
SpringBoot로 개발을 하다가 이번에 Python(Django)으로 개발하게 되었다. 파이썬을 공부하면서 헷갈렸던 내용을 몇 가지 정리해보려고 한다. 첫 타자는 메서드 오버라이딩!
파이썬도 다른 언어처럼 메소드 오버라이딩이 크게 다르지 않을 거라 생각했는데, 생각보다 좀 헷갈려서 정리하게 되었다.
설명보다는 코드 위주로 정리한다.
오버라이딩(Overriding)
기본적인 오버라이딩 방법이다. 부모클래스의 메서드와 동일한 이름으로 메서드를 생성한다. 아래 코드를 실행하면 인스턴스가 메서드를 호출할 때 오버라이딩한 메서드가 호출된다.
class Person:
def greeting(self):
print("hello")
class Student(Person):
def greeting(self): # Person 클래스의 greeting 메서드를 무시하고 Student 클래스에서 새로운 greeting 메서드 생성
print("hello. i am a student")
jaamong = Student()
jaamong.greeting() # hello. i am a student
중복 줄이기
super()를 사용하여 부모 클래스의 메서드를 호출하여 중복("hello")을 줄였다.
class Person:
def greeting(self):
print("hello")
class Student(Person):
def greeting(self):
super().greeting() # 부모 클래스의 메서드를 호출하여 중복 줄이기
print("i am a student")
jaamong = Student()
jaamong.greeting()
# hello
# i am a student
출처
'Python' 카테고리의 다른 글
Ubuntu 환경에서 특정 버전의 파이썬 제거하기 (0) | 2024.03.08 |
---|---|
[Python/Django] Windows 10에서 가상 환경, Django 설치 (0) | 2023.09.18 |
[Python] 속성(Attribute) (0) | 2023.09.14 |
[Python] pass를 사용하는 이유 (0) | 2023.09.11 |
Comments