Petunjuk Tipe

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Jake Roach

Data Engineer

Kode tanpa petunjuk tipe

class Student:
    def __init__(self, name, student_id, tuition_balance):
        self.name = name
        self.student_id = student_id
        self.tuition_balance = tuition_balance

# Membuat kelas bisa jadi rumit
walker = Student("Sarah Walker", 319921, 15000)
  • Apakah student_id seharusnya integer?
  • Haruskah tuition_balance berupa float atau integer? Mungkin string?
  • Setelah walker dibuat, bagaimana kita mengingat tipenya di kode selanjutnya?
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Petunjuk tipe

Alat opsional untuk menambahkan info tentang objek ke dalam kode

  • Lebih mudah dibaca, ditelusuri
  • Salah satu cara terbaik menunjukkan keterampilan Python tingkat enterprise
  • Tidak dipaksakan oleh interpreter
  • Kata kunci tipe built-in, pustaka typing, kelas kustom
# Tambahkan petunjuk tipe saat membuat 
# variabel
gpa: float = 3.92
# Tambahkan petunjuk tipe pada definisi 
# fungsi/metode
def check_grades(year: str) -> List[int]:
    ...
# Bisa juga memakai kelas kustom
students: Dict[str, Student] = {...}
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Petunjuk tipe dengan kata kunci tipe bawaan

# Petunjuk tipe untuk logika deklaratif
name: str = "Frost"  # Sebelumnya: name = "Frost"
student_id: int = 91031367
tuition_balance: float = 17452.78
# Petunjuk tipe untuk definisi fungsi/metode
def get_schedule(semester: str) -> dict:
    ...
  • Gunakan sintaks variable: type
  • Deklaratif, menandai tanda tangan fungsi/metode
  • def .... () -> type: untuk menentukan tipe kembalian
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Pustaka typing

typing adalah pustaka yang menyediakan lebih banyak alat untuk petunjuk tipe

  • List, Dict, Tuple
  • Beri petunjuk untuk objek tingkat atas dan elemennya
from 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, Callable
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Petunjuk tipe dengan kelas kustom

class 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
# Gunakan Student dan Course untuk memberi petunjuk tipe
walker: Student = Student("Sarah Walker", 319921, 15000)
data_science: Course = walker.get_course("TDM-20100")
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Memeriksa tipe objek

# 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'>
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Ayo berlatih!

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Preparing Video For Download...