SORU
14 HAZİRAN 2010, PAZARTESİ


Python3's "Fonksiyonu ek Açıklamalar" için iyi kullanır nelerdir;

Fonksiyon Açıklamalar: PEP-3107

Bir kod parçacığını arasında Python3 fonksiyonu ek açıklamalar gösteren koştum. Konsept basit ama bu Python3 veya onlar için herhangi bir iyi kullanır uygulanmıştır neden düşünemiyorum. Belki de bu YÜZDEN beni aydınlatabilir mi?

Nasıl çalışır:

def foo(a: 'x', b: 5   6, c: list) -> max(2, 9):
    ... function body ...

Bir tartışmadan sonra iki nokta üst üste aşağıdaki her şeyi bir 'açıklama', işlevin dönüş değeri için bir açıklama vardır.

foo.func_annotations bir sözlük döndürür:

{'a': 'x',
 'b': 11,
 'c': list,
 'return': 9}

Bu sahip olmanın önemi nedir?

CEVAP
14 HAZİRAN 2010, PAZARTESİ


Bu gerçekten harika olduğunu düşünüyorum.

Akademik bir arka plan gelen açıklamalar kendilerini Java gibi diller için akıllı statik analiz etkinleştirmek için paha biçilmez olduğunu kanıtladı olduğunu söyleyebilirim. Örneğin, devlet kısıtlamaları, erişimi için izin verilen iş parçacığı gibi semantik tanımlayabilirsiniz, mimarisi sınırlamaları, vb., ve sonra bunları okuyup onları Derleyiciler daha ne olsun ötesinde bir güvence sağlamak için işleyen bir kaç araç vardır. Önkoşul/postconditions kontrol şeyler yazabilirsin.

Böyle bir şey özellikle zayıf onun yazmaya nedeniyle Python ihtiyaç duyduğumuz, ama gerçekten resmi sözdizimi, bu basit ve kısmı yapılan yapıları vardı.

Güvence ötesinde ek açıklamalar için başka kullanım alanları vardır. Java tabanlı aletlerimi Python için geçerli ben gördüğümü söyleyebilirim. Örneğin, yöntemleri için özel uyarılar atamak ve onların belgeleri okumanız gerekir onları çağırdığınızda göstergeler verir sağlayan bir araç var (E. g., negatif bir değer ile çağrılan olmaması gereken bir yöntem var, ama adı kolay değil düşünün). Ek açıklamalar ile technicall Python için böyle bir şey yazabilirsiniz. Benzer şekilde, büyük bir sınıf etiketlere göre yöntemleri düzenleyen bir araç eğer resmi bir sözdizimi ise orada yazılı olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FamilyFeud

    FamilyFeud

    22 AĞUSTOS 2006
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011