Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于python中可能是int或chars的方法,处理参数的正确方法是什么?_Python_Arguments - Fatal编程技术网

对于python中可能是int或chars的方法,处理参数的正确方法是什么?

对于python中可能是int或chars的方法,处理参数的正确方法是什么?,python,arguments,Python,Arguments,例如,我希望有一个方法,根据传递的第一个参数,可以将int或char作为第二个参数 我想到的方法是在它调用的方法后面有一个if来检查第一个参数是什么,它可以是4个参数中的一个。此时,如果它是类型1或类型2,需要int作为第二个参数,那么它将在if中完成代码。然后,我有一个elif检查第一个参数是类型3还是类型4,然后它进入该块并完成该块中的代码。else将抛出异常或相应地处理问题 这是正确的方法吗?如果两种情况下的内部代码不同,那么最好有两种不同的方法。如果两种情况下的内部代码不同,那么最好有两

例如,我希望有一个方法,根据传递的第一个参数,可以将int或char作为第二个参数

我想到的方法是在它调用的方法后面有一个if来检查第一个参数是什么,它可以是4个参数中的一个。此时,如果它是类型1或类型2,需要int作为第二个参数,那么它将在if中完成代码。然后,我有一个elif检查第一个参数是类型3还是类型4,然后它进入该块并完成该块中的代码。else将抛出异常或相应地处理问题


这是正确的方法吗?

如果两种情况下的内部代码不同,那么最好有两种不同的方法。

如果两种情况下的内部代码不同,那么最好有两种不同的方法。

如果代码相同,则进行一些参数转换(例如获取字符的ASCII值-顺便说一句,python中的字符只是一个长度为1的字符串),您应该在函数的开头执行强制转换,其余代码应该相同。例如:

def foo(a, b):
    if a == 1:
        b = ord(b)
    # use b as if it is integer

如果代码的其余部分完全不同,您应该编写不同的函数,而不是试图将其压缩成一个函数。

如果代码相同,则需要进行一些参数转换(例如获取字符的ASCII值-顺便说一句,python中的字符只是长度为1的字符串),您应该在函数开始时执行强制转换,其余代码应相同。例如:

def foo(a, b):
    if a == 1:
        b = ord(b)
    # use b as if it is integer

如果代码的其余部分完全不同,您应该编写不同的函数,而不是试图将其压缩到一个函数中。

是的。“简单总比复杂好”获取更多的上下文可能会有所帮助,这样我们就可以理解为什么你的代码是这样设计的。教授要求项目如何工作。如果你的教授教你根据论点类型进行代码分支,请注意:你在向一个甚至不掌握局域网基本原理的人学习一门语言语言。此外,Python中没有“char”这样的东西。我建议您确定最常见的输入类型,并编写代码来处理该类型,但如果输入是其他类型的,则放入异常处理程序。是的。“简单比复杂好”获取更多的上下文可能会有所帮助,这样我们就可以理解为什么你的代码是这样设计的。教授要求项目如何工作。如果你的教授教你根据论点类型进行代码分支,请注意:你在向一个甚至不掌握局域网基本原理的人学习一门语言此外,Python中没有“char”这样的东西。我建议您确定最常见的输入类型,并编写代码来处理该类型,但如果输入是其他类型的,则应放入异常处理程序。