背景:
我主要通过管道中的命令行运行python脚本,因此我的参数始终是需要类型转换为适当类型的字符串。我每天制作很多小脚本,为每个脚本输入每个参数所需的时间比应该的要长。
问题:
有没有一种规范的方法可以为函数自动键入强制转换参数?
我的方式:
如果没有更好的方法,我已经开发了一个装饰师来做我想做的事情。decorator是下面的autocast fxn。在示例中,修饰的fxn是fxn2。注意,在代码块的末尾,我将1和2作为字符串传递,如果运行脚本,它将自动添加它们。这是个好办法吗?def estimateType(var):
#first test bools
if var == 'True':
return True
elif var == 'False':
return False
else:
#int
try:
return int(var)
except ValueError:
pass
#float
try:
return float(var)
except ValueError:
pass
#string
try:
return str(var)
except ValueError:
raise NameError('Something Messed Up Autocasting var %s (%s)'
% (var, type(var)))</