μƒˆμ†Œμ‹

Languages/Python

[Python] μ—°μ‚°μž μ˜€λ²„λ‘œλ”©, 비ꡐ μ—°μ‚°μž

  • -
λ°˜μ‘ν˜•

직접 μ •μ˜ν•œ 클래슀의 객체에

 

β€’  +, - * 와 같은 일반 μ—°μ‚°μžλ₯Ό μ μš©ν•˜λ €λ©΄ , 객체λ₯Ό μ—°μ‚° κ°€λŠ₯ν•œ μƒνƒœλ‘œ λ§Œλ“€μ–΄μ•Ό 함

 

β€’ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ„ 톡해 이λ₯Ό κ΅¬ν˜„

 

 

μ—°μ‚°μž μ˜€λ²„λ‘œλ”©

 

β€’ μΈμŠ€ν„΄μŠ€ 객체끼리 μ„œλ‘œ 연산을 ν•  수 있게 기쑴에 μžˆλŠ” μ—°μ‚°μž 의 κΈ°λŠ₯을 λ°”κΎΈμ–΄ μ€‘λ³΅μœΌλ‘œ μ •μ˜ν•˜λŠ” 것

 

νŒŒμ΄μ¬μ—μ„œλŠ” νŠΉμ • μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•˜λ©΄ μ—°μ‚° 자 μ€‘λ³΅μ •μ˜ κ΅¬ν˜„

 

 

 

예제 1) 

#μ—°μ‚°μž μ˜€λ²„λ‘œλ”© 예제 1 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-100 print(n.num)

 

예제 2) 

#μ—°μ‚°μž μ˜€λ²„λ‘œλ”© 2 #self : 객체 μžμ‹  # other : λ”ν•˜κ³ μž ν•˜λŠ” κ°’ class Number: def __init__(self,n): self.n = n n1 = Number(3) n2 = Number(4) ### μœ„λŠ” μ—λŸ¬λ‚˜λŠ” μ „μ½”λ“œ, μ•„λž˜λŠ” λ³€κ²½ μ½”λ“œ ### class Number: def __init__(self,n): self.n = n def __add__(self, other): if isinstance(other, Number): return Number(self.n +other.n) elif isinstance(other, int): return Number(self.n + other) n1 = Number(3) n2 = Number(4) print(n1+n2) # <__main__.Number object at 0x03248040> print((n1+n2).n) print(n1 + 3) # <__main__.Number object at 0x03248058> print((n1 + 3).n)

 

비ꡐ μ—°μ‚°μž μ˜€λ²„λ‘œλ”© λ©”μ†Œλ“œ

 

비ꡐ μ—°μ‚°μž μ˜€λ²„λ‘œλ”© μ˜ˆμ‹œ)

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))
λ°˜μ‘ν˜•
Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.