• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Python] 파이썬 오버라이딩과 오버로딩
        2023년 05월 16일
        • 조별하
        • 작성자
        • 2023.05.16.:08

        🍃 파이썬에서의 다형성

        Java 언어의 다형성을 다루면서 오버라이딩과 오버로딩에 대해 알아보았다. 그렇다면 Python에서도 언어의 다형성이 있는지 살펴보려고 한다.

        Java 오버라이딩과 오버로딩

         

        [Java] Java 다형성과 오버로딩, 오버라이딩

        🍃 Java 다형성 ✔️ 다형성 이란 하나의 함수, 클래스가 다양한 방법으로 동작하는 것을 말한다. Java에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding) 을 통해서 다형성을 지원한다. 🌱 오

        geminihoroscope.tistory.com

         

        🌱 오버로딩(Overloading)

        ✔️ 파이썬에서는 오버로딩을 정식으로 지원하지 않는다고 한다. 하지만 구현은 가능하지만 오버로딩을 남발하면 코드가 복잡해진다.

         

        ✔️ 파이썬에서는 연산자 오버로딩을 사용할 경우가 많이 있는데 이는 연산자(더하기, 빼기, 나누기, 곱하기)를 객체끼리 사용할 수 있게 하는 기법으로 연산자 오버로딩을 사용하면 아래와 같이 동작할 수 있다.

        class HouseCho:
            lastname = "조"
            def __inint__(self, name):
                self.fullname = self.lastname + name
            def __add__(self, other):
                print(f"{self.fullname}, {other.fullname} 결혼했네")
        
        class HouseLee(HouseCho):
            lastname = "이"
            def travel(self, where, day):
                print(f"{self.fullname}, {where}여행 {day}일 가네.")
        
        pey = HouseCho("응용")
        juliet = HouseLee("줄리엣")
        print(pey + juliet)   <---- 연산자 오버로딩 호출
        
        조응용, 이줄리엣 결혼했네.

         

        🌱 오버라이딩(Overriding)

        ✔️ 오버라이딩은 부모 클래스에서 정의한 함수를 자식 클래스에서 변경하거나 상속받아 사용하는 것을 의미한다. 부모 클래스의 함수 이름, 기본적인 기능은 그대로 사용하지만 원하는 함수를 커스텀 하여 사용할 때 사용한다.

        class HouseCho:
            lastname = "조"
            def __init__(self, name):
                self.fullname = self.lastname + name
            def travel(self,where):
                print("{0}, {1} 여행을 가다." .format(self.fullname, where))
            def love(self, other):
                print("{0}, {1} 사랑에 빠졌네." .format(self.fullname, other.fullname))
            def __add__(self, other):
                print("{0}, {1} 결혼했네." .format(self.fullname, other.fullname))
        
        
        class HouseLee(HouseCho):
            lastname = "이"
            def travel(self, where, day):
                print("{0}, {1}{2} 여행 가네." .format(self.fullname, where, day))
        
        cho = HouseCho("이야")
        cho.travel("1개월")
        
        lee = HouseLee("정아")
        lee.travel("2개월", "15일")
        저작자표시 (새창열림)

        'LANGUAGES > Python' 카테고리의 다른 글

        [Python] format(천단위 콤마 삽입하기)  (0) 2023.05.04
        [Python] 웹 크롤러 만들기 with Requests/BeautifulSoup  (2) 2023.04.17
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바