Al usar una función, deseo asegurarme de que el tipo de variables sea el esperado. ¿Cómo hacerlo bien?Forma correcta de afirmar el tipo de variable en Python
Aquí está un ejemplo de función falsa tratando de hacer precisamente esto antes de seguir con su papel:
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()
Es afirmar el enfoque correcto? ¿Debería usar try/except en su lugar?
Además, no parece mi juego de aserción de pruebas para funcionar correctamente: S
, gracias pythoneers
Creo que ha llegado a la mayor debilidad de Python: no hay forma formal de especificar tipos cuando lo desee. El aspecto menor de este problema es que debe verificar los tipos manualmente (como en su pregunta). El problema más grande es que sus herramientas no pueden ayudarlo. Python sería el lenguaje perfecto si solo admite el tipado dinámico, pero también tiene la opción de especificar tipos cuando no se necesita la dinámica. – Tom