Korzystając z funkcji, chcę się upewnić, że typ zmiennych jest zgodny z oczekiwaniami. Jak to zrobić dobrze?Prawidłowy sposób potwierdzenia typu zmiennej w języku Python
Oto przykład fałszywa funkcja próbuje robić tylko to przed udaniem się ze swojej roli:
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()
Czy dochodzić właściwe podejście? Czy powinienem użyć polecenia try/except?
Również moja assert zestaw testów nie wydaje się działać prawidłowo: S
Dzięki pythoneers
Wydaje mi się, że udało Ci się osiągnąć największą słabość Pythona: brak formalnego sposobu określania typów, kiedy chcesz. Mniejszy aspekt tego problemu polega na ręcznym sprawdzaniu typów (jak w pytaniu). Większy problem polega na tym, że twoje narzędzia nie mogą ci pomóc. Python byłby idealnym językiem, gdyby tylko obsługiwał dynamiczne pisanie, ale miał również opcję określania typów, gdy dynamiczne nie było potrzebne. – Tom