class Figure:
count = 0 # 클래스 변수
# 생성자(initializer)
def __init__(self, width, height):
# self.* : 인스턴스변수
self.width = width
self.height = height
# 클래스 변수 접근 예
Figure.count += 1
def __del__(self):
Figure.count -= 1
# 메서드
def calc_area(self):
return self.width * self.height
figure1 = Figure(2, 3)
Figure.count
figure2 = Figure(2, 3)
Figure.count
print(Figure.count)
figure1 = Figure(2, 3)
print(Figure.count)
figure2 = Figure(4, 5)
print(Figure.count)
print(figure1.width)
print(figure2.width)
del figure1
print(Figure.count)
del figure2
print(Figure.count)
class Figure:
# 생성자(initializer)
def __init__(self, width, height):
self.width = width
self.height = height
# 메서드
def calc_area(self):
return self.width * self.height
# 정적 메서드 (Figure 에 너비와 높이가 같은 도형은 정사각형임을 알려주는 기능)
@staticmethod
def is_square(rect_width, rect_height):
if rect_width == rect_height:
print("정사각형이 될 수 있는 너비/높이입니다.")
else:
print("정사각형이 될 수 없는 너비/높이입니다.")
figure1 = Figure(2, 3)
figure1.is_square(5, 5) # 객체명.정적메서드명으로 호출 가능
Figure.is_square(4, 5) # 클래스명.정적메서드명으로 호출 가능
class Figure:
count = 0 # 클래스 변수
# 생성자(initializer)
def __init__(self, width, height):
# self.* : 인스턴스변수
self.width = width
self.height = height
# 클래스 변수 접근 예
Figure.count += 1
# 정적 메서드 (정적 메서드에서는 클래스 attribute 는 접근 가능)
@staticmethod
def print_count():
print(Figure.count)
# 정적 메서드 (에러: 정적 메서드에서는 객체 attribute 는 접근 불가)
@staticmethod
def print_width():
print(self.width)
figure1 = Figure(1, 2)
print(Figure.count)
print(figure1.print_count())
print(figure1.print_width())
class Figure1:
count = 0 # 클래스 변수
# 생성자(initializer)
def __init__(self, width, height):
# self.* : 인스턴스변수
self.width = width
self.height = height
# 클래스 변수 접근 예
Figure1.count += 1
# 메서드
def calc_area(self):
return self.width * self.height
# 클래스 메서드
@classmethod
def print_count(cls):
return cls.count
figure1 = Figure1(2, 3)
figure2 = Figure1(4, 5)
print(Figure1.count)
print(Figure1.print_count()) # 2
print(figure1.print_count()) # 2
class A(object):
count = 0 # static member (class variable)
def __init__(self, cnt):
A.count += 1
self.cnt = cnt # member variable, attribute
def print_cnt(self): # memeber function, method
print(self.cnt)
@classmethod # class method, static function
def print_count(cls):
print(cls.count)
a1 = A(1)
a2 = A(2)
a3 = A(44)
a1.print_cnt()
a2.print_cnt()
a3.print_cnt()
A.print_count()