python在方法级别执行静态类型检查

python在方法级别执行静态类型检查,python,Python,我对python非常陌生,我有以下dooubt 假设我有一个名为TestRequest和TestResponse的类。在另一个类中有一个名为testStatic的方法 我希望testStatic方法只接受TestRequest作为其参数,并只返回testresponse对象作为响应 这在python中是可能的吗 我来自java背景,我可以这样写: public TestResponse testStatic(TestRequest request) { return response }

我对python非常陌生,我有以下dooubt

假设我有一个名为
TestRequest
TestResponse
的类。在另一个类中有一个名为
testStatic
的方法

我希望
testStatic
方法只接受
TestRequest
作为其参数,并只返回
testresponse
对象作为响应

这在python中是可能的吗

我来自java背景,我可以这样写:

public TestResponse testStatic(TestRequest request)
{
    return response
}
def testStatic(self, request):
    assert isinstance(request, TestRequest)
    ...
如何在python中实现同样的功能

谢谢

您没有像Java中那样进行“编译时”类型检查,但您可以在运行时通过断言对象是类的实例来进行检查,如下所示:

public TestResponse testStatic(TestRequest request)
{
    return response
}
def testStatic(self, request):
    assert isinstance(request, TestRequest)
    ...

(但正如其他人所指出的,这不是Python通常会做的事情。请查看“Duck Typing”。

如果有人传递了其他类型,会发生什么情况?@eumiro:我希望Python像Java一样自动抛出错误。这可能吗?Python是一种动态类型化语言;根据定义,它没有静态类型检查。谢谢。但是没有办法保证
testStatic
将返回
TestResponse
?@batman:testStatic的单元测试可以对其返回值执行类似的断言。除了极少数极端情况外,运行时类型检查没有多大意义,而且它通常只会有害……不要这样做。如果您担心自己的代码,请使用单元测试。如果您担心第三方代码,请结交更好的朋友。@detly:这应该是一个报价