考虑这个函数(及其使用)的例子,它接收一个参数,该参数只具有int
的意义:
def fun(index):
index = int(index)
# do something with index
def main():
print fun(1e6)
我发现我一直在几个处理整数的函数上重复这个模式,因为它确保我真正接收到一些整数(注意1e6
是一个浮点实例)。
这有点麻烦,如果忘记了它可能会产生问题(这里的是代码,对浮点/integer/string/的反应不同)。。。价值观)。所以这可以在函数签名中编码吗?
例如,这个伪代码中的一些内容:
def fun(int index):
# do something with index
首先,你不应该真的这样做(即使有些日子我也有点想…)。Python不是静态类型的,所以您不应该真正引入笨拙的静态类型。
布特,回答你的问题。Decorators:
工作方式如下:
在Python 3中,可以使用function annotations,然后编写一个decorator,将参数转换(或尝试转换)为指定的类型。
在Python2中,你不能按照你想要的方式来做。Python2的语法不支持在函数定义中放入除参数本身以外的任何内容,并且您不能更改Python的语法以使您也可以将类型放入其中。
相关问题 更多 >
编程相关推荐