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

Nonestring 的情况下,它将提高 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