Mic*_*ham 0 python if-statement
我试图看看是否有更有效的方法来编写ifif语句.编写API以根据调用类的参数数量生成URL.
对于Ex:
def Cars(self, model=null, color=null, miles=null)
if model == null and color == null and miles ==null:
url = cars/
elif model != null and color == null and miles ==null:
url = cars/model=%s)% model
elif model != null and color != null and miles ==null:
url = cars/model=%s/color=%s)% model, color
else url = someting
return url
Run Code Online (Sandbox Code Playgroud)
我有超过10个参数,并且不想用所有组合编写那么多elif语句.
这些属性似乎并不相互依赖; 分别处理每一个:
def cars(self, model=None, color=None, miles=None)
url = "cars"
if model is not None:
url += "/model=%s" % (model,)
if color is not None:
url += "/color=%s" % (color,)
if miles is not None:
url += "/miles=%s" % (miles,)
return url
Run Code Online (Sandbox Code Playgroud)
这导致您意识到您可能希望接受任意关键字参数,并检查特定集的存在:
def cars(self, **kwargs):
url = "cars"
for kw in ["model", "color", "miles"]:
if kwargs.get(kw) is not None:
url += "/%s=%s" % (kw, kwargs[kw])
return url
Run Code Online (Sandbox Code Playgroud)
这忽略了您正在构建的字符串实际上是否是有效URL的问题.