是否有Pythonic方式调用单个对象的许多成员?

oin*_*ink 0 python list

我试图用Python来重写它:

if not x.v1()
  if not x.v2()
    if not x.v3()
      return 'validated'
return 'invalid'
Run Code Online (Sandbox Code Playgroud)

请特别注意,如果x.v1()没有通过,x.v2()而且x.v3()甚至没有运行.

这是我到目前为止最好的主意:

import operator

for method in ['v1', 'v2', 'v3']:
  if operator.methodcaller(method)(x):
    return 'invalid'
return 'validated'
Run Code Online (Sandbox Code Playgroud)

但我觉得肯定有更多的Pythonic方式.

澄清:函数的数量很大,甚至可能在运行时更改,因此虽然x.v1() or x.v2() or x.v3()看起来确实更好,但这是不可能的,并且数组确实是必要的.(也就是说,如果有比用所有这些字符串写出更好的方法,请告诉我它!)对于不清楚感到抱歉.

Ign*_*ams 5

只是颠倒逻辑.

if x.v1() or x.v2() or x.v3():
  return 'invalid'
return 'validated'
Run Code Online (Sandbox Code Playgroud)