通过测试,我发现以下代码片段在替换if()时可以正常工作:用if f()== True:但这是我第一次遇到if f():语法。在测试本练习中我自己能够完成的其他部分时,这引起了我很多困惑。
有人可以扩展一下if f():概念。我认为这将设置一个等于函数getattr()的变量,然后说是否getattr(self,'has_'+ label):然后self.labels.append()但是在测试不正确时。但是我无法绕过丢失的链接。
如果f():完成了什么?
def classify(self):
"""Classifies this hand.
Creates attributes:
labels:
"""
self.make_histograms()
self.labels = []
for label in PokerHand.all_labels:
f = getattr(self, 'has_' + label)
if f():
self.labels.append(label)