Как хорошо использовать для Python3 & ldquo; Function Annotations & rdquo;

var countInstances = function(body, target) {
  var globalcounter = 0;
  var concatstring  = '';
  for(var i=0,j=target.length;i<body.length;i++){
    concatstring = body.substring(i-1,j);
    
    if(concatstring === target){
       globalcounter += 1;
       concatstring = '';
    }
  }
  
  
  return globalcounter;
 
};

console.log(   countInstances('abcabc', 'abc')   ); // ==> 2
console.log(   countInstances('ababa', 'aba')   ); // ==> 2
console.log(   countInstances('aaabbb', 'ab')   ); // ==> 1

151
задан SilentGhost 14 June 2010 в 14:29
поделиться

2 ответа

Я думаю, что это действительно здорово.

Исходя из академического опыта, я могу сказать вам, что аннотации оказались неоценимыми для включения интеллектуальных статических анализаторов для таких языков, как Java. Например, вы можете определить семантику, такую ​​как ограничения состояния, потоки, которым разрешен доступ, ограничения архитектуры и т. Д., И есть довольно много инструментов, которые затем могут читать их и обрабатывать их, чтобы обеспечить гарантии, выходящие за рамки того, что вы получаете от компиляторов. Вы даже можете написать вещи, которые проверяют предусловия / постусловия.

Мне кажется, что-то подобное особенно необходимо в Python из-за его более слабой типизации, но на самом деле не было конструкций, которые сделали бы это простым и частью официального синтаксиса.

Есть и другие варианты использования аннотаций, не зависящие от уверенности. Я вижу, как применить свои инструменты на основе Java к Python. Например, у меня есть инструмент, который позволяет вам назначать специальные предупреждения для методов и дает вам указания, когда вы вызываете их, что вы должны прочитать их документацию (например, представьте, что у вас есть метод, который нельзя вызывать с отрицательным значением, но он не интуитивно понятно из названия). С аннотациями я мог бы написать что-то подобное для Python. Точно так же инструмент, который организует методы в большом классе на основе тегов, может быть написан при наличии официального синтаксиса.

89
ответ дан 23 November 2019 в 22:06
поделиться

Ури уже дал правильный ответ, так что вот менее серьезный: так вы можете сделать свои строки документации короче.

20
ответ дан 23 November 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: