python3: 如何启用强类型?
python3: how to enable strong typing?
有没有一种方法可以在 python3 中获得真正的强类型,以便在使用错误类型时出现运行时错误?
请参阅以下示例:
def pick(k:int = None):
if k: print("value: ", k)
else: print("no value")
pick()
pick(1000)
pick("error")
这给出了以下输出:
no value <- can be accepted, and for this example it would be useful
value: 1000
value: error <- here should come a runtime error
检查这个,希望能有所帮助。这是强制类型检查的方法之一。
def pick(k:int = None):
assert isinstance(k, int), 'Value Must be of Interger Type'
print("value: ", k) if k else print("no value") # Single Line Statement
在 None
或 string
的情况下,它将提高 AssertionError
AssertionError: Value Must be of Interger Type
然而,如果你真的需要 ValueError
加薪,那么
def pick(k:int = None):
if not isinstance(k, int):
raise ValueError('Value Must be of Interger Type')
print("value: ", k) if k else print("no value") # Single line statement
异常
ValueError: Value Must be of Interger Type
有没有一种方法可以在 python3 中获得真正的强类型,以便在使用错误类型时出现运行时错误? 请参阅以下示例:
def pick(k:int = None):
if k: print("value: ", k)
else: print("no value")
pick()
pick(1000)
pick("error")
这给出了以下输出:
no value <- can be accepted, and for this example it would be useful
value: 1000
value: error <- here should come a runtime error
检查这个,希望能有所帮助。这是强制类型检查的方法之一。
def pick(k:int = None):
assert isinstance(k, int), 'Value Must be of Interger Type'
print("value: ", k) if k else print("no value") # Single Line Statement
在 None
或 string
的情况下,它将提高 AssertionError
AssertionError: Value Must be of Interger Type
然而,如果你真的需要 ValueError
加薪,那么
def pick(k:int = None):
if not isinstance(k, int):
raise ValueError('Value Must be of Interger Type')
print("value: ", k) if k else print("no value") # Single line statement
异常
ValueError: Value Must be of Interger Type