Coding style 编码风格:如何明显确定参数';我们必须传递给函数的类型是什么?

Coding style 编码风格:如何明显确定参数';我们必须传递给函数的类型是什么?,coding-style,python,Coding Style,Python,记录函数预期接收的参数类型的最佳方式是什么 有时,函数只使用对象的一个或两个字段。有时,这些字段具有通用名称(get()、set()、reset()等)。在这种情况下,我们必须留下评论: ... @staticmethod def get( postId, obj ): """obj is instance of class Type1, not Type2""" inner = obj.get() 有没有更明确的方法让它变得明显

记录函数预期接收的参数类型的最佳方式是什么

有时,函数只使用对象的一个或两个字段。有时,这些字段具有通用名称(get()、set()、reset()等)。在这种情况下,我们必须留下评论:

    ... 
    @staticmethod
    def get( postId, obj ):
        """obj is instance of class Type1, not Type2"""
        inner = obj.get()   

有没有更明确的方法让它变得明显?也许一个对象名应该包含预期的类型名?

鉴于python的“duck typing”(后期绑定)行为,要求特定类型是错误的

如果您知道您的函数不能采用哪种类型,则可以在检测到这些类型后引发异常;否则,如果传递的对象不支持适当的协议,只需引发异常

至于文档,只需将所需的协议放在docstring中即可。

python的一个优点是“duck typing”,即不依赖于变量的实际类型,而是依赖于其行为。所以我建议,你记录这个字段,这个对象应该包含

"""obj should have a field 'foo' like in class 'bar' or 'baz' """

首先,正确命名您的方法,并在有意义的情况下使用属性

你应该试着掌握鸭子打字的窍门。它非常有用。如果没有,试着看看是否有助于你做你想做的事