728x90
반응형
- 인스턴스 속성
- 객체마다 다르게 갖고 있는 속성
- 코드에서 self 로 표기된 속성들이 인스턴스 속성이다.
- 클래스 속성
- 모든 객체가 공유하는 속성
- count 가 클래스 속성
- 접근시에는 클래스이름.속성 으로 접근 (ex : Unit.count)
- 비공개 속성
- 클래스 안에서만 접근 가능한 속성
- __hidden 이 비공개 속성이다.
- 외부에서 변경시 Unit.__hidden 으로는 접근이 불가능 하다
- 네이밍 맹글링에 의해서 접근은 가능하다 (unit1._Unit__hidden)
class Unit:
count = 0
def __init__(self, name, weight, height, hidden):
self.name=name
self.weight=weight
self.height=height
self.__hidden=hidden
Unit.count +=1
print(f"{self.name} Unit 생성")
def __str__(self):
return f"name={self.name} weight={self.weight} height={self.height}"
unit1 = Unit("Unit1", 20, 30, "magic")
unit2 = Unit("Unit2", 100, 200, "power")
print(unit1)
print(unit2)
print(Unit.count)
print(unit1._Unit__hidden)
# OUTPUT
Unit1 Unit 생성
Unit2 Unit 생성
name=Unit1 weight=20 height=30
name=Unit2 weight=100 height=200
2
magic
728x90
반응형
'Development > Python' 카테고리의 다른 글
파이썬 문법 : 내부 함수, 클로저 (0) | 2023.03.06 |
---|---|
파이썬 문법 : method (0) | 2023.03.03 |
파이썬 문법 : map, filter 함수 (0) | 2023.02.28 |
파이썬 문법 : 람다 함수 (0) | 2023.02.27 |
파이썬 문법 : 키워드 가변 매개변수 kwargs (0) | 2023.02.27 |