不是一种有效的方法,而是一种棘手的方法:
def listAllSubset(remaining = set(),used = set()):
remaining.discard
used.discard
...
,
isinstance
是权威的,重点在代码的最后一行,
这是代码
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()
好吧,
最后一行代码listAllSubset(remaining,used.add(element))
与listAllSubset(set(),None
相等),
然后assert(isinstance(used,set))
会引发AssertionError
只看这段代码
used = set()
flag = used.add('_')
print(flag) # print value of flag
没有
已更改
我更改了代码,但它可以满足您的需求,
def listAllSubset(remaining = set(),set))
if (len(remaining) == 0):
print(used)
else:
element = remaining.pop()
listAllSubset(remaining,used)
used.add(element)
listAllSubset(remaining,used)
请原谅我的英语不好,英语太难了!
本文链接:https://www.f2er.com/3138312.html