Bei der Verwendung einer Funktion möchte ich sicherstellen, dass der Typ der Variablen wie erwartet ist. Wie geht es richtig?Korrekte Art, den Typ der Variablen in Python zu bestätigen
Hier ist ein Beispiel gefälschte Funktion nur versuchen, dies zu tun, bevor er mit seiner Rolle los:
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()
ist der richtige Ansatz behaupten? Sollte ich stattdessen try/except verwenden?
Auch meine assert Reihe von Tests scheint nicht richtig zu funktionieren: S
Dank pythoneers
Ich denke, Sie haben auf die größte Schwäche von Python getroffen: keine formale Möglichkeit, Typen zu spezifizieren, wenn Sie wollen. Der kleinere Aspekt dieses Problems ist, dass Sie Typen manuell überprüfen müssen (wie in Ihrer Frage). Das größere Problem ist, dass Ihre Tools Ihnen nicht helfen können. Python wäre die perfekte Sprache, wenn es nur die dynamische Typisierung unterstützt, aber auch die Möglichkeit, Typen anzugeben, wenn keine dynamische benötigt wird. – Tom