3.6 ile yeni eklenen şu özellik ne işe yarıyor:
https://docs.python.org/3.7/whatsnew/3.6.html#pep-526-syntax-for-variable-annotations
Altındaki yazıdan anladığım kadarıyla verilen sınıfın annotations özelliğini alıyormuş.
Değişken üzerinde hiçbir değişiklik yapmıyor. Yani somut bir işlevi yok.
Python’da daha önce şöyle bir şey yapabiliyorduk:
# Örnek şuradan alınmıştır: https://www.python.org/dev/peps/pep-0526/
# ...
def __init__(self, damage: int, captain: str = None):
self.damage = damage
if captain:
self.captain = captain
# ...
Burada __init__
fonksiyonunun aldığı damage
parametresinin int
tipinde, captain
parametresinin ise str
tipinde olması gerektiğini belirtiyoruz.
Bahsettiğiniz değişiklik ile bunu değişkenlerde de belirtebiliyoruz:
# Örnek şuradan alınmıştır: https://docs.python.org/3.7/whatsnew/3.6.html#pep-526-syntax-for-variable-annotations
primes: List[int] = []
captain: str # Not: Bir ilk değer yok!
class Starship:
stats: Dict[str, int] = {}
1 Beğeni