Notice
Recent Posts
Link
Tags
- Django
- Git
- spring
- ORM
- spring security 6
- springboot
- 데이터베이스
- sql
- string
- 프로그래머스
- 스프링
- 자바
- join
- nginx
- Docker
- select
- 1차원 배열
- java
- spring mvc
- DI
- spring boot
- AWS
- 스프링부트
- 문자열
- mysql
- PYTHON
- SSL
- @transactional
- jpa
- session
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
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