Python 3.6 piyasaya sürülmek üzere. PEP 494 - Python 3.6 Sürüm Programı Aralık ayının sonundan bahsediyor, bu yüzden değişken ek açıklamalardan bahsettiklerini görmek için Python 3.6'daki Yenilikler konusuna baktım :
PEP 484 , tip ipuçları olarak da bilinen işlev parametrelerinin tür ek açıklamaları için standart getirmiştir. Bu PEP, sınıf değişkenleri ve örnek değişkenleri dahil olmak üzere değişken türlerine açıklama eklemek için Python'a sözdizimi ekler:
primes: List[int] = [] captain: str # Note: no initial value! class Starship: stats: Dict[str, int] = {}
Tıpkı işlev açıklamaları için olduğu gibi, Python yorumlayıcısı değişken notlara belirli bir anlam atfetmez ve bunları yalnızca
__annotations__
bir sınıfın veya modülün özel bir özniteliğinde saklar . Statik olarak yazılmış dillerdeki değişken bildirimlerin aksine, açıklama sözdiziminin amacı, soyut sözdizimi ağacı ve__annotations__
öznitelik aracılığıyla üçüncü taraf araçlar ve kitaplıklar için yapılandırılmış tür meta verilerini belirtmenin kolay bir yolunu sağlamaktır .
Okuduklarımdan, Python 3.5'ten gelen tür ipuçlarının bir parçası, Python 3.5'te Tür ipuçları nelerdir ?
captain: str
Ve class Starship
örneği takip ediyorum ama sonuncusu hakkında emin değilim: Nasıl primes: List[int] = []
açıklıyor? Tam sayılara izin verecek boş bir liste mi tanımlıyor?
primes: List[int] = []
sadece boş bir listedirprimes = []
. Fark olmasıdır iddia olduğunuprimes
anlamına gelir sadece içerirlerint
s ve 3. parti uygulamalar bu iddiayı doğrulamak için programınızı kontrol yazabilirsiniz, ama sadece yazma ile aynı olan herhangi bir piton yorumlayıcı kodu çalıştırdığınızdaprimes = []
ve böylece yapıyorprimes: List[int] = []; primes.append("string")
hala geçerli.