这里没有错误。您正在打印一个函数,这就是函数的外观。
要实际 调用 该函数,必须在其后放置括号。您已经在上面完成了。如果要打印调用函数的结果,只需让函数返回值,然后将打印内容放在该位置即可。例如:
print test.sort_word_list()
另一方面,如果您希望函数更改对象的状态,然后以其他方式打印状态,那也可以。
现在,您的代码似乎可以在某些地方工作,但在其他地方却不能;让我们看看原因:
parser
设置一个名为的变量word_list
,稍后再使用即可print test.word_list
。sort_word_list
设置一个名为的变量sorted_word_list
,稍后再使用print test.sort_word_list
—即函数,而不是变量。因此,您将看到绑定方法。(此外,正如乔恩·克莱门茨(Jon Clements)指出的那样,即使您解决了这个问题,也要进行打印None
,因为这就是sort
返回的内容。)num_words
设置一个名为的变量num_words
,然后再次打印该函数-但在这种情况下,该变量与该函数具有相同的名称,这意味着您实际上是用其输出替换该函数,因此它可以正常工作。但是,这可能不是您想要的。
(在某些情况下,乍一看似乎是个好主意-您只想计算一次,然后一次又一次地访问它而又不不断地对其进行重新计算。但这不是这样做的方法。
(使用
@property或使用备注修饰符)。



