【发布时间】:2020-06-29 13:59:17
【问题描述】:
我想通过传递任何参数来检查用户是否调用了函数。
这是我的功能
def HEXtoRGB(hexlist):
rgblist = []
for i in range(len(hexlist)):
h = hexlist[i].lstrip('#')
rgb = tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
rgblist.append(rgb)
return(rgblist)
print(HEXtoRGB())
HEXtoRGB() 将hexlist 作为参数。如果用户在没有参数的情况下调用HEXtoRGB() 函数,则应打印错误消息。
为此,我尝试在 python 中进行错误处理,但它不起作用
def HEXtoRGB(hexlist):
try:
rgblist = []
for i in range(len(hexlist)):
h = hexlist[i].lstrip('#')
rgb = tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
rgblist.append(rgb)
return(rgblist)
except:
print("Hex Color List Not Found")
print(HEXtoRGB())
上面的异常处理给了我同样的错误
File "test.py", line 10, in <module>
print(HEXtoRGB())
TypeError: HEXtoRGB() missing 1 required positional argument: 'hexlist'
有没有最好的方法来处理缺少参数的错误,以防用户调用没有参数的函数
【问题讨论】:
-
您能否说明您要达到的目标?
def HEXtoRGB(hexlist):已经意味着HEXtoRGB必须 用参数调用,调用HEXtoRGB()是错误的——正如TypeError所示。你还想要什么其他行为? -
想处理类型错误,以便下次用户可以传递参数
-
是用户错误调用
HEXtoRGB,他们必须处理。用户可以 已经处理了错误并在下次传递参数。如果HEXtoRGB在内部处理错误,则用户不会立即收到通知表明他们做错了什么,并且可能会因错误的结果而跛行。您希望向用户呈现什么行为? -
def HEXtoRGB(hexlist==None):然后测试if not(hexlist) -
这能回答你的问题吗? Best way to check function arguments?
标签: python-3.x exception