Skip to main content
 首页 » 编程设计

python之将函数转换为python中类的方法

2025年05月04日18tintown

我正在尝试掌握 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 )。