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

时间:2010-11-06 16:47:49

标签: python arguments

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

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

这是正确的方法吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果代码相同,有一些参数变换(例如获取char的ASCII值 - btw,python中的char只是一个长度为1的字符串),你应该在函数的开头做一个强制转换,其余的代码应该是一样的。例如:

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

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