我正在尝试掌握 python 2.6 的窍门,这是我对编程语言的介绍。我正在关注 Learn Python the Hard Way,我一定错过了一些东西。我有一组函数要合并到一个类中。这些功能包含在 here 中.我试图将它们组合成一个名为“解析器”的类。此代码包含 here .
函数本身在类之外工作。我正在尝试像这样从类中调用函数:
导入模块:
>>> from ex48 import parser2
分配类(class):
>>> parser_class = parser2.Parsers()
调用函数:
>>> parser_class.parse_subject(word_list, ('noun', 'player'))
我得到以下信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ex48/parser2.py", line 60, in parse_subject
verb = parse_verb(word_list)
NameError: global name 'parse_verb' is not defined
不确定为什么要告诉我这个。有人可以指出我正确的方向吗?
请您参考如下方法:
您对代码的作用感到困惑。
这不会分配一个类,它会创建一个实例,并将该实例分配给一个变量:
parser_class = parser2.Parsers()
这会在该实例上调用一个方法:
parser_class.parse_subject(word_list, ('noun', 'player'))
下面告诉你没有全局函数(或者实际上是任何类型的变量)parse_verb:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ex48/parser2.py", line 60, in parse_subject
verb = parse_verb(word_list)
NameError: global name 'parse_verb' is not defined
我希望您将其更改为 verb = self.parse_verb(word_list),这将调用同一对象的 parse_verb 方法(self )。
