Tür İpuçları

Python'da Orta Düzey Nesne Yönelimli Programlama

Jake Roach

Data Engineer

Tür ipuçları olmadan kod

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

# Bir sınıf oluşturmak zor olabilir
walker = Student("Sarah Walker", 319921, 15000)
  • student_id bir tamsayı mı olmalı?
  • tuition_balance float mı yoksa int mi? Belki string mi?
  • walker oluşturulduktan sonra, kodda daha sonra türünü nasıl hatırlarız?
Python'da Orta Düzey Nesne Yönelimli Programlama

Tür ipuçları

Bir nesne hakkında bilgiyi koda eklemeyi sağlayan isteğe bağlı araç

  • Okumak ve sorun gidermek daha kolay
  • Kurumsal düzeyde Python becerilerini göstermenin en iyi yollarından biri
  • Yorumlayıcı tarafından zorunlu kılınmaz
  • Yerleşik tür anahtar sözcükleri, typing kütüphanesi, özel sınıflar
# Değişken oluştururken tür ipucu ekleyin
gpa: float = 3.92

# Fonksiyon/yöntem tanımına tür ipucu ekleyin def check_grades(year: str) -> List[int]: ...
# Özel sınıflar da kullanılabilir students: Dict[str, Student] = {...}
Python'da Orta Düzey Nesne Yönelimli Programlama

Yerleşik tür anahtar sözcükleriyle tür ipuçları

# Bildirimsel mantık için tür ipuçları
name: str = "Frost"  # Önce: name = "Frost"
student_id: int = 91031367
tuition_balance: float = 17452.78
# Fonksiyon/yöntem tanımları için tür ipuçları
def get_schedule(semester: str) -> dict:
    ...
  • Söz dizimi: değişken: tür
  • Bildirimsel, fonksiyon/yöntem imzası
  • Dönüş türü için def .... () -> tür:
Python'da Orta Düzey Nesne Yönelimli Programlama

typing Kütüphanesi

typing, tür ipuçları için daha fazla araç sağlayan bir kütüphanedir

  • List, Dict, Tuple
  • Üst düzey nesneleri ve iç öğeleri belirtin
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
Python'da Orta Düzey Nesne Yönelimli Programlama

Özel sınıflarla tür ipuçları

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
# Tür ipucunda Student ve Course kullanın
walker: Student = Student("Sarah Walker", 319921, 15000)
data_science: Course = walker.get_course("TDM-20100")
Python'da Orta Düzey Nesne Yönelimli Programlama

Nesne türlerini kontrol etme

# 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'da Orta Düzey Nesne Yönelimli Programlama

Hadi pratik yapalım!

Python'da Orta Düzey Nesne Yönelimli Programlama

Preparing Video For Download...