Python 如何返回原始输入以在其他名称下使用?

Python 如何返回原始输入以在其他名称下使用?,python,arcpy,Python,Arcpy,我正在尝试创建一个get\u input()函数,在这里我可以选择如何检索输入 def get_input(input_msg = '', getparam = 0, style = 'raw'): if style.lower() is 'arcpy': return arcpy.GetParameterAsText(getparam) if style.lower() is 'raw': return raw_input(input_msg)

我正在尝试创建一个
get\u input()
函数,在这里我可以选择如何检索输入

def get_input(input_msg = '', getparam = 0, style = 'raw'):
    if style.lower() is 'arcpy':
        return arcpy.GetParameterAsText(getparam)
    if style.lower() is 'raw':
        return raw_input(input_msg)
然而,当我使用该方法时,无论输入参数是什么,我得到的都是
None
。我认为这是因为该方法被导入到主程序中,所以它实际上没有访问参数的权限

然后我试着

def get_input(style = 'raw'):
    if style.lower() is 'arcpy':
        return arcpy.GetParameterAsText
    if style.lower() is 'raw':
        return raw_input
想要将函数返回到其他地方使用,并且简化函数的输入,但是得到了错误

TypeError: 'NoneType' object is not callable
对于方法的两个设置
get\u input()
在该配置中似乎只能返回
NoneType
对象


如何解决此问题,以便能够使用其他名称调用raw_input()或arcpy.GetParameterAsText?

问题出在
if
语句中<代码>is不应用于比较。编辑我的代码以

def get_input(style = 'raw'):
    if style.lower() == 'raw':
        return raw_input
    if style.lower() == 'arcpy':
        return arcpy.GetParameterAsText
    raise IOError("Invalid Input in 'style': {}".format(style))

修复了该问题。

如果<代码>如果<代码>条件不匹配,则函数不会返回任何内容请注意,您也不应使用<代码>is进行比较。使用<代码>is进行比较的事实是,如果<代码>条件不匹配,则函数不会返回任何内容。谢谢,我最终还是弄明白了。应该用“is”操作符来检查身份。e、 g.有两个对象指向同一内存。“==”运算符用于检查等价性。比如一个整数5等于5。对于对象,您将覆盖“==”用于根据规则确定对象是否等效于另一个对象的uu eq_u”函数。“是”检查一个对象是否实际上是另一个对象的别名。