-
Class AdvancedEngineering WIKI/Python 2022. 4. 6. 17:14
클래스 변수, 인스턴스 변수
# 클래스 구조 # 구조 설계 후 재사용성 증가, 코드 반복 최소화, 메소드 활용 class Student(): def __init__(self, name, number, grade, details): self._name = name self._number = number self._grade = grade self._details = details def __str__(self): return 'str : {} - {}'.format(self._name, self._number) def __retr__(self): return 'retr : {}'.format(self._name, self._number) student1 = Student('Kim', 1, 1, {'gender' : 'Male', 'score1' : 95, 'score2' : 88})
클래스 상세 설명
# 클래스 재 선언 class Student(): """ Student Class Author : wono.c Date : 2022.03.29 """ # 클래스 변수 student_count = 0 def __init__(self, name, number, grade, details, email = None): # 인스턴스 변수 self._name = name self._number = number self._grade = grade self._details = details self._email = email Student.student_count += 1 def __str__(self): return 'str {}'.format(self._name) def __repr__(self): return 'repr {}'.format(self._name) def detail_info(self): print('Current Id : {}'.format(id(self))) print('Student Detail Info : {} {} {}'.format(self._name, self._email, self._details) def __del__(self): Student.student_count -= 1 # self 의미 student1 = Student('cho', 2, 3, {'gender' : 'Male', 'score1' : 65, 'score2' : 55}) student2 = Student('chang', 4, 1, {'gender' : 'Female', 'score1' : 85, 'score2' : 74}) # ID 확인 print(id(student1)) print(id(student2)) # dir & __dict__ 확인 print(dir(student1)) print(student1.__dict__) # Docstring (클래스 주석 내용 확인 할 수 있다) print(Student.__doc__) # 인스턴스 변수 # 직접 접근(PEP 문법적으로 권장 x) print(student1._name) # <- 직접 접근 / 변경 가능성 있다 아래 처럼 # student1._name = 'choi' # 변경 가능성이 있으므로 좋지 않다 # 인스턴스 네임스페이스 없으면 상위에서 검색 # 즉, 동일한 이름으로 변수 생성 가능(인스턴스 검색 후 -> 상위(클래스 변수, 부모 클래스 변수)
'Engineering WIKI > Python' 카테고리의 다른 글
파이썬 비트 논리연산자 (0) 2022.04.21 파이썬 정렬 함수 (rjust, ljust, zfill) (0) 2022.04.20 [Python] 파이썬 인스턴스 메서드 / 정적 메서드 / 클래스 메서드 (0) 2022.04.12 알고리즘 INPUT값 TXT 파일로 입력하기 (Feat. VSC) (0) 2022.04.07 [Python] itertools 완전탐색 (0) 2022.03.06 [Python] FastAPI 사용법 (0) 2021.04.13 [Python] One-line Tree in Python (0) 2021.02.21 [Python] pyinstaller 실행파일 생성 (0) 2021.02.21