Python 중급 객체 지향 프로그래밍
Jake Roach
Data Engineer
class Student:
def __init__(self, name, student_id, tuition_balance):
self.name = name
self.student_id = student_id
self.tuition_balance = tuition_balance
# Trying to create a class can be tricky
walker = Student("Sarah Walker", 319921, 15000)
student_id는 정수여야 할까요?tuition_balance는 float, 정수, 아니면 문자열이어야 할까요?walker를 만든 뒤, 나중에 코드에서 그 타입을 어떻게 기억할까요?객체 정보(타입)를 코드에 추가하는 선택적 도구
typing 라이브러리, 사용자 정의 클래스# 변수에 타입 힌트 추가 gpa: float = 3.92# 함수/메서드 정의에 타입 힌트 추가 def check_grades(year: str) -> List[int]: ...# 사용자 정의 클래스도 사용 가능 students: Dict[str, Student] = {...}
# 선언적 로직에 타입 힌트 사용
name: str = "Frost" # Before: name = "Frost"
student_id: int = 91031367
tuition_balance: float = 17452.78
# 함수/메서드 정의에 타입 힌트 사용
def get_schedule(semester: str) -> dict:
...
variable: type 사용def .... () -> type:typing은 더 많은 타입 힌트 도구를 제공하는 라이브러리입니다
List, Dict, Tuplefrom typing import List, Dict
student_names: List[str] = ["Morgan", "Chuck", "Anna"]
student_gpas: Dict[str, float] = {
"Casey": 3.71,
"Sarah": 4.0
}
Any, Set, Iterator, Callableclass Student:
def __init__(self, name: str, student_id: int, tuition_balance: float) -> None:
self.name: str = name
self.student_id: int = student_id
self.tuition_balance: float = tuition_balance
def get_course(self, course_id: str) -> Course:
...
return course
# Use Student and Course to type hint
walker: Student = Student("Sarah Walker", 319921, 15000)
data_science: Course = walker.get_course("TDM-20100")
# walker: Student = Student("Sarah Walker", 319921, 15000)
print(type(walker))
<class '__main__.Student'>
# data_science: Course = walker.get_course("TDM-20100")
print(type(data_science))
<class '__main__.Course'>
Python 중급 객체 지향 프로그래밍