패스트캠퍼스 챌린지 31일차 (Python)
# 인스턴스 속성
# 객체마다 다르게 가지는 속성
# 클래스 안에서 사용시 -> self.속성명
# 클래스 밖에서 사용시 -> 객체명.속성명
# 클래스 속성
# 모든 객체가 공유하는 속성
# 생성자 밖에서 만든 뒤 사용
# 클래스명.속성명
# 비공개 속성
# 클래스 안에서만 접근 가능한 속성
# 클래스 안에서만 사용 -> self.__속성명
# 클래스 밖에서는 변경 불가능
class Unit:
"""
인스턴스 속성 : 이름, 체력, 방어막, 공격력
-> 객체마다 다른 값을 가지는 속성
클래스 속성 : 전체 유닛 개수
-> 모든 객체가 공유하는 속성
비공개 속성
-> 클래스안에서만 사용 가능한 속성
"""
count = 0
def __init__(self, name, hp, shield, damage):
# 인스턴스 속성은 클래스 안에서 self.속성명
self.name = name
# 비공개 속성은 클래스 안에서 self.__속성명
self.__hp = hp
self.shield = shield
self.damage = damage
# 클래스 속성은 객체명.속성명
Unit.count += 1
print(f"[{self.name}](이)가 생상 되었습니다.")
def __str__(self):
return f"[{self.name}] 체력 : {self.__hp} 방어막 : {self.shield} 공격력 : {self.damage}"
probe = Unit("프로브", 20, 20, 5)
zealot = Unit("질럿", 100, 60, 16)
dragoon = Unit("드라군", 100, 80, 20)
# 클래스 밖에서 인스턴스 속성을 사용할때는 객체명.속성명
probe.shield += 1
print(probe)
# 클래스 밖에서 클래스 속성 사용할때는 객체명.속성명
print(Unit.count)
# 비공개 속성 접근
probe.__hp = 9999
# 네임 맹글링 (name mangling)
probe._Unit__hp = 9999
print(probe)
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'FastCampus 강의 > Python' 카테고리의 다른 글
패스트캠퍼스 챌린지 33일차 (Python) (0) | 2022.02.25 |
---|---|
패스트캠퍼스 챌린지 32일차 (Python) (0) | 2022.02.24 |
패스트캠퍼스 챌린지 30일차 (Python) (0) | 2022.02.22 |
패스트캠퍼스 챌린지 29일차 (Python) (0) | 2022.02.21 |
패스트캠퍼스 챌린지 28일차 (Python) (0) | 2022.02.20 |