如何用动态类型语言(即Python)指定参数类型?

Tom*_*tny 1 python java static dynamic

有没有这样的Java等价物

String myMethod (MyClass argument) {...}
Run Code Online (Sandbox Code Playgroud)

在Python?

托马斯,谢谢你

hug*_*own 13

没有.(还有更多的东西来围绕这个最多15个字符...)

  • @Tomas,你可以记录它. (4认同)
  • Tomas,在调试环境中,您可以使用isinstance()和issubclass()方法通过引发异常或简单的打印消息来发出警报. (2认同)
  • 它们不必传递MyClass的实例,除非代码专门检查它.它们可以传递任何具有代码所需的方法和属性的对象,而不管所述对象的出处. (2认同)

Mat*_*nen 12

不,那里没有.

事实上,检查类型被认为是"非Pythonic",因为任何类型的对象看起来都像预期的类型应该被平等对待.


Don*_*ell 8

Python 3.x具有函数注释,您可以在其中声明参数和返回类型:

def myMethod(argument: MyClass) -> str:
   ...
Run Code Online (Sandbox Code Playgroud)

但是目前Python对它们没有任何作用,它们仅作为文档.