例如,我希望有一个方法,根据传递的第一个参数,可以将int或char作为第二个参数。
我想做的方法是在它调用的方法之后有一个if,检查第一个参数是什么,它可以是4个中的一个。此时,如果是这样,输入1或2期望一个int作为第二个参数,它完成了if中的代码。然后我有一个elif检查第一个参数是类型3还是4,然后它进入该块并完成该块中的代码。 else会抛出异常或相应地处理问题。
这是正确的方法吗?
答案 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
如果代码的其余部分完全不同,那么你应该编写不同的函数,而不是试图将其压缩成一个。