<p><code>isinstance</code>是权威的,重点在代码的最后一行</p>
<p>这是密码</p>
<pre class="lang-py prettyprint-override"><code>def listAllSubset(remaining = set(), used = set()):
assert(isinstance(remaining, set))
assert(isinstance(used, set))
if (len(remaining) == 0):
print(used)
else:
element = remaining.pop() # OK: element will be None
listAllSubset(remaining, used) # OK: remaining == used == set()
listAllSubset(remaining, used.add(element)) # Error: used.add(element) will return None, and the None will give to keyword argument "used", then "assert" will raise a AssertionError.
if __name__ == "__main__":
listAllSubset()
</code></pre>
<p>好吧,
最后一行代码<code>listAllSubset(remaining, used.add(element))</code>等于<code>listAllSubset(set(), None</code>),
然后<code>assert(isinstance(used, set))</code>将引发断言错误</p>
<hr/>
<h2>看看这个密码</h2>
<pre><code>used = set()
flag = used.add('_')
print(flag) # print value of flag
</code></pre>
<blockquote>
<p>None</p>
</blockquote>
<hr/>
<h2>已更改</h2>
<p>我改了密码,我的,它能满足你的需要</p>
<pre><code>def listAllSubset(remaining = set(), used = set()):
assert(isinstance(remaining, set))
assert(isinstance(used, set))
if (len(remaining) == 0):
print(used)
else:
element = remaining.pop()
listAllSubset(remaining, used)
used.add(element)
listAllSubset(remaining, used)
</code></pre>
<p>请原谅我英语不好,英语太难了!!你知道吗</p>