관리 메뉴

Storage Gonie

5. Python 클래스 변수와 인스턴스 변수의 차이 & 함수 오버라이딩 본문

웹개발/Django 웹서비스 개발(인프런)

5. Python 클래스 변수와 인스턴스 변수의 차이 & 함수 오버라이딩

Storage Gonie 2019. 2. 7. 22:24
반응형

클래스 변수

- 모든 클래스의 인스턴스 간에 값을 공유하는 변수


인스턴스 변수

- 인스턴스마다 개별적으로 다른 값을 가지는 변수

- self.변수명으로 사용하면 인스턴스 변수가 됨.


class User:
num_users = 0 # class 변수
def __init__(self, name):
self.name = name # instance 변수
User.num_users += 1


u = User('honux')
print(User.num_users, u.name)

u2 = User('crong')
print(User.num_users, u2.name)

print(User.num_users, u.num_users, u2.num_users)

'''
1 honux
2 crong
2 2 2
'''


함수 오버라이딩

- 이미 존재하는 함수를 내가 다시 정의하는 것

- 여기서 __str__는 객체를 출력할 때 사용되는 함수인데 이것을 오버라이딩 하지 않았다면 출력시 이상한 주소값이 나왔을 것임

class Text:
def __init__(self, str):
self.text = str

def __str__(self):
return "Object: " + self.text

t = Text("This is some text")

print(t)
print(t.text)

'''
Object: This is some text
This is some text
'''


반응형
Comments