Temel Tür Ek Açıklamaları
Değişkenlere, işlev parametrelerine ve döndürülen türlere ek açıklama ekleyin.
Temel Tür Ek Açıklamaları, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Tür Açıklamaları Nedir
Tür açıklamaları; değişkenlerin, parametrelerin ve dönüş değerlerinin beklenen türünü bildiren ipuçlarıdır. Çalışma zamanında zorunlu tutulmazlar; mypy gibi tür denetleyicileri tarafından okunurlar.
def greet(name: str) -> str:
return f"Hello, {name}"
result: str = greet("Alice")
print(result)Değişken Açıklamaları
Modül düzeyindeki, sınıf düzeyindeki veya yerel değişkenleri, iki nokta üst üste işaretinin ardından türü yazarak açıklayın.
count: int = 0
pi: float = 3.14159
name: str = "Python"
flag: bool = True
# Annotation without assignment (declaration only)
future_value: intİşlev Parametresi Açıklamaları
İşlev imzasındaki her parametreyi açıklayın. Dönüş türünü açıklamak için -> type kullanın.
def add(a: int, b: int) -> int:
return a + b
def repeat(text: str, times: int = 1) -> str:
return text * times
def no_return() -> None:
print("side effect only")Yerleşik Koleksiyon Türleri (Python 3.9+)
Python 3.9 ve sonraki sürümlerde, genel türler olarak küçük harfli yerleşik türleri doğrudan kullanın: list[int], dict[str, int], tuple[int, ...].
def total(numbers: list[int]) -> int:
return sum(numbers)
def config() -> dict[str, str]:
return {"host": "localhost", "port": "8080"}
def coords() -> tuple[float, float]:
return (1.0, 2.0)Optional ve Union
X | None (Python 3.10 ve sonrası) veya Optional[X], bir değerin X ya da None olabileceği anlamına gelir. X | Y ise X veya Y anlamına gelir.
from typing import Optional
def find(items: list[int], target: int) -> int | None:
return next((x for x in items if x == target), None)
# Older style:
# def find(...) -> Optional[int]:Birleşim Türleri
int | str (Python 3.10 ve sonrası) veya Union[int, str], bir değerin birkaç türden biri olabileceğini açıklar.
from typing import Union
def process(value: int | str) -> str:
return str(value)
# Older style:
# def process(value: Union[int, str]) -> str:Tür Takma Adları
Yeniden kullanılabilir bir takma ad oluşturmak ve okunabilirliği artırmak için bir tür ifadesini bir ada atayın.
from typing import TypeAlias
Vector: TypeAlias = list[float]
Matrix: TypeAlias = list[Vector]
def dot(a: Vector, b: Vector) -> float:
return sum(x * y for x, y in zip(a, b))Callable Açıklamaları
Bağımsız değişken olarak geçirilen işlevleri açıklamak için Callable[[arg_types], return_type] kullanın.
from typing import Callable
def apply(func: Callable[[int, int], int], x: int, y: int) -> int:
return func(x, y)
result = apply(lambda a, b: a + b, 3, 4)
print(result) # 7*args ve **kwargs Açıklamaları
*args için eleman türünü (demet türünü değil), **kwargs içinse değer türünü belirtin.
def log(*messages: str, level: str = "INFO") -> None:
for msg in messages:
print(f"[{level}] {msg}")
def configure(**options: int) -> None:
for key, val in options.items():
print(f"{key}: {val}")from __future__ import annotations
Açıklamaların ertelenmiş değerlendirmesini etkinleştirmek ve ileriye dönük başvuruların tırnak işareti olmadan kullanılmasına izin vermek için bu içe aktarmayı dosyanın en üstüne ekleyin.
from __future__ import annotations
class Node:
def __init__(self, value: int, next: Node | None = None):
self.value = value
self.next = next # forward ref to Node works hereTYPE_CHECKING Koruması
Dairesel içe aktarmalardan veya ağır içe aktarmalardan kaçınmak için türleri yalnızca tür denetimi sırasında (çalışma zamanında değil) içe aktarın.
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mymodule import HeavyClass
def process(obj: HeavyClass) -> None:
... # HeavyClass not imported at runtimeHızlı Kontrol
Bir işlevin hiçbir şey döndürmediğini hangi açıklama söz dizimi belirtir?
Özet
Değişkenleri name: Type, parametreleri param: Type ve dönüşleri -> Type ile açıklayın. Koleksiyonlar için list[T] ve dict[K,V] (Python 3.9 ve sonrası), X | None (Python 3.10 ve sonrası) kullanın; ileriye dönük başvurular için from __future__ import annotations ekleyin.
Sıkça Sorulan Sorular
“Temel Tür Ek Açıklamaları” dersi ücretsiz mi?
Evet — “Temel Tür Ek Açıklamaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Temel Tür Ek Açıklamaları” dersinde ne öğreneceğim?
Değişkenlere, işlev parametrelerine ve döndürülen türlere ek açıklama ekleyin. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Temel Tür Ek Açıklamaları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Temel Tür Ek Açıklamaları
- Karmaşık Türler: List, Dict, Optional, Union
- TypeVar, Genel Sınıflar ve Protocol
- mypy Çalıştırma ve Tür Hatalarını Düzeltme