有适当通知验证许多变量的有效方法吗?

Lui*_*uis 1 python

这是我的代码:

if self.a == "":
    raise MyException("The required parameter 'a' is empty")
if self.b == "":
    raise MyException("The required parameter 'b' is empty")
if self.v == "":
    raise MyException("The required parameter 'v' is empty")
if self.g == "":
    raise MyException("The required parameter 'g' is empty")
if self.quality == "":
    raise MyException("The required parameter 'quality' is empty")
if self.abc == "":
    raise MyException("The required parameter 'abc' is empty")
Run Code Online (Sandbox Code Playgroud)

这似乎是太多的重复模式.问题是我无法找到一种方法使其更简单和紧凑.

有任何想法吗?

Phy*_*aux 6

假设你仍想验证所有参数,这里有一个使用getattr上面建议的解决方案:

for attribute in ["a", "b", ...]:
    if getattr(self, attribute) == "":
        raise MyException(f"The required parameter '{attribute}' is empty")
Run Code Online (Sandbox Code Playgroud)

  • @Luis`getattr(self,"attribute")`相当于`self.attribute` (4认同)