if():的语法是否与f()== True:相同?

通过测试,我发现以下代码片段在替换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)