javascript – 如何用动态类型语言描述函数参数?
作者:互联网
我的问题更倾向于Python,但也可能是关于JavaScript或其他脚本语言.
我通常使用静态类型语言(Java,C,ActionScript,…)进行开发.
我喜欢不时使用Python,我还需要有时使用JavaScript.这些是动态类型语言.这没有什么不对,但我通常有很多麻烦来理解函数或方法中需要哪些参数.它发生即使它是我自己的代码与一些docstrings!也许是因为眼睛必须在其他地方寻找而不是在函数的定义中.
当然,答案应该在文档中.但有时它根本不清楚,或者因为使用鸭子打字,文档可能本身很难编写(“第一个参数是一个必须有quack()方法的函数和一个羽毛(arg)方法,其中arg是一个字符串“).我非常喜欢的是语言本身内部的一种参数描述(即使它是可选的,就像在ActionScript中一样).
明确描述函数/方法的参数有哪些最佳实践?
如何创建一个特殊的装饰器(如果使用Python),其目的是在我们使用它时检查数据的类型(但是因为它将在运行时而不是在写入时使用,无论如何都会有什么意义)?
你认为这应该不是问题吗?那不仅仅是当前的文档字符串会让开发人员感到困惑,或者说我的思维过于依赖于静态类型?
解决方法:
我不知道Javascript,但Python从版本3开始有可选的函数注释,如下所示:
def haul(item: Haulable, *vargs: PackAnimal) -> Distance:
要么:
def compile(source: "something compilable",
filename: "where the compilable thing comes from",
mode: "is this a single statement or a suite?"):
有关更多信息,请参阅the PEP.
它们在运行时可访问,甚至可用于类型检查.
标签:python,javascript,arguments,dynamic-typing,code-documentation 来源: https://codeday.me/bug/20190630/1333894.html