В частности, часть «: int» ...В чем смысл def some_method (param: int) синтаксис?
Я предположил, что он как-то проверял тип параметра во время вызова функции и, возможно, поднял исключение в случае нарушения. Но следующий пробег без проблем:
def some_method(param:str):
print("blah")
some_method(1)
def some_method(param:int):
print("blah")
some_method("asdfaslkj")
В обоих случаях печатается «бла» - исключение исключено.
Я не уверен, что имя функции, поэтому я не был уверен, что делать с Google.
EDIT: OK, так что это http://www.python.org/dev/peps/pep-3107/. Я вижу, как это было бы полезно в рамках, которые используют метаданные. Я не предполагал, что это так. Спасибо за ответы!
ВОПРОС ПОСЛЕДУЮЩИХ ВОПРОСОВ - Любые мысли о том, хорошая идея или плохая идея определить мои функции как def some_method (param: int), если я действительно могу обрабатывать int-входы - даже если, как объясняет pep 3107, это просто метаданные - нет принудительного исполнения, как я изначально предполагал? По крайней мере, потребители методов будут ясно видеть, что я намеревался. Это альтернатива документации. Думаете, это хорошо/плохо/трата времени? Разумеется, хорошее присвоение параметров (в отличие от моего надуманного примера) обычно дает понять, какие типы предназначены для передачи.
[Функция аннотаций] (http://www.python.org/dev/peps/pep-3107/) –