编码风格:如何明确确定我们必须传递给函数的参数类型?

ser*_*ach 2 python coding-style

记录函数期望接收的参数类型的最佳方法是什么?

有时,函数仅使用对象的一个​​或两个字段.有时这些字段有通用名称(get(),set(),reset()等).在这种情况下,我们必须发表评论:

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

是否有更明确的方式使其显而易见?也许对象名称应该包含期望的typename?

Mar*_*cin 7

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

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

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