Nell'utilizzo di una funzione, desidero garantire che il tipo di variabili sia come previsto. Come farlo bene?Modo corretto per affermare il tipo di variabile in Python
Qui è una funzione di falso esempio cercando di fare proprio questo prima di andare avanti con il suo ruolo:
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()
È affermare l'approccio giusto? Dovrei usare try/except invece?
Inoltre, la mia asserzione serie di test non sembra funzionare correttamente: S
Grazie pythoneers
Penso che tu abbia colto la più grande debolezza di Python: nessun modo formale per specificare i tipi quando vuoi. L'aspetto minore di questo problema è che devi controllare i tipi manualmente (come nella tua domanda). Il problema più grande è che i tuoi strumenti non possono aiutarti. Python sarebbe il linguaggio perfetto se solo supportasse la digitazione dinamica, ma avesse anche la possibilità di specificare i tipi quando la dinamica non era necessaria. – Tom