При использовании функции я хочу убедиться, что тип переменных соответствует ожидаемому. Как это сделать правильно?
Вот пример поддельной функции, пытающейся сделать именно это, прежде чем продолжить свою роль:
def my_print(begin, text, end):
"""Print 'text' in UPPER between 'begin' and 'end' in lower
"""
for i in (begin, text, end):
assert isinstance(i, str), "Input variables should be strings"
out = begin.lower() + text.upper() + end.lower()
print out
def test():
"""Put your test cases here!
"""
assert my_print("asdf", "fssfpoie", "fsodf")
assert not my_print("fasdf", 33, "adfas")
print "All tests passed"
test()
Является ли утверждение правильным подходом? Должен ли я вместо этого использовать try/except?
Кроме того, мой набор тестов assert, похоже, не работает должным образом: S
Спасибо, питонеры.
typing
в python 3.6, mypy и других инструментах приведенное выше утверждение остается верным: было бы здорово иметь версию python со статической типизацией. - person Evgeny   schedule 14.06.2018