擅长:python、mysql、java
<pre><code>def valid(var):
if var in [None, '']:
return False
return True
ret = {'complete': False}
if company_director:
ret['complete'] = all(map(valid, company_director.values()))
</code></pre>
<p><code>valid(value)</code>如果有效,则返回<code>True</code>;如果无效,则返回<code>False</code>(not valid=None或'')。<code>map(valid, company_director.values())</code>调用valid for each attribute并返回一个类似于<code>list</code>的布尔对象。<code>all(...)</code>返回<code>True</code>当且仅当iterable的所有布尔值都是<code>True</code>。所以基本上ret['complete']是<code>True</code>当且仅当<code>company_director</code>的所有属性都有效。默认值设置为<code>False</code>,因为如果<code>if company_director:</code>失败,则没有<code>company_director</code>,因此它是不完整的。你知道吗</p>