您如何对 Python 中的函数参数施加限制?
How do you impose restrictions on function arguments in Python?
我正在编写一个函数来绘制图表。问题是,函数的输入有一些限制,我不确定如何将其放入代码中。例如,在
def PlotGraph(data, sex, c_list, status='current'):
我需要施加的限制如下:
PlotGraph
函数必须接受 sex
或 c_list
作为输入,但不能同时接受两者。 Sex 是一个字符串,只能是 'male' 或 'female',c_list 是一个整数列表。
Status
必须是 'current' 或 'previous',但默认为 'current',我已经实现了。
对于 (1),我已经四处搜索但找不到关于如何仅输入两种类型数据中的一种以及强制规定任一输入的变量类型必须是什么的方法。对于 (2) 我有一个想法包含在函数中
if status != 'current' or 'previous':
print("Invalid input")
但我不确定如果没有提交状态输入是否有效。如果您对我如何实施规定的限制有任何想法,我们将不胜感激。谢谢。
在您给定的函数签名中,您将 sex
和 c_list
作为必需的位置参数;此签名禁止仅接受其中一个的呼叫。相反,为两者尝试一个参数:
def PlotGraph(data, key, status='current'):
if type(key) == int:
sex = key
elif type(key) == list:
c_list = key
else:
print ("invalid key argument")
您对检查 status
的想法是正确的,只是您需要学习如何 check against multiple values。
我正在编写一个函数来绘制图表。问题是,函数的输入有一些限制,我不确定如何将其放入代码中。例如,在
def PlotGraph(data, sex, c_list, status='current'):
我需要施加的限制如下:
PlotGraph
函数必须接受sex
或c_list
作为输入,但不能同时接受两者。 Sex 是一个字符串,只能是 'male' 或 'female',c_list 是一个整数列表。Status
必须是 'current' 或 'previous',但默认为 'current',我已经实现了。
对于 (1),我已经四处搜索但找不到关于如何仅输入两种类型数据中的一种以及强制规定任一输入的变量类型必须是什么的方法。对于 (2) 我有一个想法包含在函数中
if status != 'current' or 'previous':
print("Invalid input")
但我不确定如果没有提交状态输入是否有效。如果您对我如何实施规定的限制有任何想法,我们将不胜感激。谢谢。
在您给定的函数签名中,您将 sex
和 c_list
作为必需的位置参数;此签名禁止仅接受其中一个的呼叫。相反,为两者尝试一个参数:
def PlotGraph(data, key, status='current'):
if type(key) == int:
sex = key
elif type(key) == list:
c_list = key
else:
print ("invalid key argument")
您对检查 status
的想法是正确的,只是您需要学习如何 check against multiple values。