class Figure:
def __init__(self, width, height):
self.width = width
self.height = height
class Quadrangle:
def __init__(self, width, height):
self.width = width
self.height = height
def __add__(self, second):
return Quadrangle(self.width + second.width, self.height + second.height)
rectangle1 = Quadrangle(2, 3)
figure1 = Figure(3, 4)
rectangle2 = rectangle1 + figure1
rectangle2.width
class Quadrangle:
def __init__(self, width, height):
self.width = width
self.height = height
def __add__(self, second):
return Quadrangle(self.width + second, self.height + second)
# 연산자 곱셈
def __mul__(self, num):
return Quadrangle(self.width * num, self.height * num)
# 연산자 len() - 길이
def __len__(self):
return self.width * 2 + self.height * 2
# 연산자 A[index] - 리스트
def __getitem__(self, index):
if index == 0:
return self.width
elif index == 1:
return self.height
# 연산자 str() - 문자열 변환
def __str__(self):
return 'width : {}, height : {}'.format(self.width, self.height)
rectangle1 = Quadrangle(2, 3) rectangle3 = rectangle1 + 4 print (rectangle3.width) print(rectangle3.width, rectangle3.height) rectangle4 = rectangle1 * 3 print(str(rectangle1)) print(str(rectangle4)) print(len(rectangle1))
id(객체명): 객체가 가리키는 실제 주소값
is 와 == 연산자 차이
class Figure(Quadrangle):
pass
rectangle1 = Quadrangle(1, 2)
rectangle2 = Quadrangle(1, 2)
rectangle3 = rectangle1
print (id(rectangle1))
print (id(rectangle2))
print(rectangle1 is rectangle2)
print(rectangle1 is rectangle3)
print(rectangle1 == rectangle2)
print(rectangle1.width == rectangle2.width)
class Figure(Quadrangle):
# 연산자 ==
def __eq__(self, p):
if ((self.width == p.width) and (self.height == p.height)):
return True
else:
return False
rectangle1 = Figure(1, 2)
rectangle2 = Figure(1, 2)
rectangle3 = rectangle1
print (id(rectangle1))
print (id(rectangle2))
print(rectangle1 is rectangle2)
print(rectangle1 is rectangle3)
print(rectangle1 == rectangle2)
print(rectangle1.width == rectangle2.width)
리스트변수명 = sorted(리스트변수명, key=lambda x:len(x))
class Keyword:
def __init__(self, word):
self.word = word
# 연산자 len() - 길이
def __len__(self):
return len(self.word)
# 연산자 A[index] - 리스트
def __getitem__(self, index):
return self.word[index]
def get_word(self):
return self.word
hi = Keyword('hi')
hello = Keyword('hello')
bye = Keyword('bye')
len(hi)
keywords = [hi, hello, bye]
keywords = sorted(keywords, key=lambda x:len(x))
for keyword in keywords:
print (keyword.get_word())
keywords = sorted(keywords, key=lambda x:x[1])
for keyword in keywords:
print (keyword.get_word())
class Keyword:
def __init__(self, word):
self.keyword = word
def __len__(self):
return len(self.keyword)
key1 = Keyword('hi')
key2 = Keyword('hello')
key3 = Keyword('bye')
keywords = [key1, key2, key3]
keywords = sorted(keywords, key=lambda x:len(x))
for keyword in keywords:
print (keyword.keyword)
class Keyword:
def __init__(self, word):
self.keyword = word
def __getitem__(self, index):
return self.keyword[index]
key1 = Keyword('hi')
key2 = Keyword('hello')
key3 = Keyword('bye')
keywords = [key1, key2, key3]
keywords = sorted(keywords, key=lambda x:x[1])
for keyword in keywords:
print (keyword.keyword)