Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Oracle SQL
- 카카오프로젝트 100
- php
- ES6
- 자바스크립트 API
- 자바스크립트 prototype
- 보안뉴스한줄요약
- 자바스크립트 객체
- numpy
- 보안뉴스
- oracle
- oracle db
- 카카오프로젝트
- 자바스크립트 기본 문법
- 자바스크립트 node
- 자바스크립트
- 파이썬
- GIT
- 카카오프로젝트100
- javascript
- 자바스크립트 element api
- 다크웹
- 오라클
- 보안뉴스 한줄요약
- 랜섬웨어
- 깃허브
- python
- 자바스크립트 jQuery
- 보안뉴스 요약
- 보안뉴스요약
Archives
- Today
- Total
FU11M00N
[Python] 연산자 오버로딩 본문
직접 정의한 클래스의 객체에
• +, - * 와 같은 일반 연산자를 적용하려면 , 객체를 연산 가능한
상태로 만들어야 함
• 연산자 오버로딩을 통해 이를 구현
연산자 오버로딩
• 인스턴스 객체끼리 서로 연산을 할 수 있게 기존에 있는 연산자의 기능을 바꾸어 중복으로 정의하는 것
파이썬에서는 특정 이름의 메소드를 재정의하면 연산
자 중복정의 구현
- 매직 메소드
미리 정의된 수치 연산자
class NumBox:
def __init__(self,num):
self.num = num
n=NumBox(40)
print(n + 100) # n+100은 객체 + 100 임 그래서 에러
# 에러 발생
에러발생
class NumBox:
def __init__(self,num):
self.num = num
def __add__(self,num):
self.num += num
def __sub__(self,num):
self.num -= num
n= NumBox(40)
n+100 # n+100 == n.__add__ 라는 의미
print(n.num)
n-110
print(n.num)
비교 연산자 오버로딩 메소드
class Number:
def __init__(self,n):
self.n =n
def __lt__(self,other):
return self.n< other.n
def __le__(self,other):
return self.n <= other.n
def __gt__(self,other):
return self.n > other.n
def __ge__(self,other):
return self.n <= other.n
def __eq__(self,other):
return self.n == other.n
n1 = Number(3)
n2 = Number(4)
print("n1 <n2 : {} ".format(n1<n2))
print("n1 <= n2 : {}".format(n1<=n2))
print("n1 > n2 : {}".format(n1>n2))
print("n1 <= n2 : {}".format(n1>=n2))
print("n1 == n2 : {}".format(n1==n2))
'Programming > Python' 카테고리의 다른 글
[ Python ] python SHA512값 구하기 , SHA512 특징, SHA512 처리 단계 , (0) | 2021.03.26 |
---|---|
[ Python ] 아나콘다 (Anaconda) 설치하기. (0) | 2021.03.12 |
[Python] Property (0) | 2020.11.24 |
[Python] 다형성 (0) | 2020.11.24 |
[Python] 추상 클래스 (0) | 2020.11.24 |
Comments