Python - 如何在同一个类中调用另一个函数(未解析的引用错误)

时间:2017-11-15 11:20:45

标签: python python-3.x

我想创建包含两个函数的类,其中一个函数在类中调用另一个函数,类似:

1 class parser:
2     def foo1(a):
3         return a
4     
5     def foo2(b):
6         return foo1(b*2) \\ just for example b*2, can be anything

它写道第6行有一个未解决的引用。我该如何修复它?

1 个答案:

答案 0 :(得分:3)

您要么忘记使用@staticmethod将方法设置为静态,要么忘记将self作为参数之一,如果您希望它们是实例方法。

对于静态方法,您需要将类更改为以下内容:

class Parser:
    @staticmethod
    def foo1(a):
        return a

    @staticmethod
    def foo2(a):
        return Parser.foo1(a)

我还将类名更改为上部camelcase以遵循典型风格。

这将允许您在没有实例的情况下调用函数,例如print(Parser.foo2('test'))将打印test

或者如果您希望这些方法成为实例方法:

class Parser:

    def __init__(self):
        pass

    def foo1(self, a):
           return a

    def foo2(self, a):
           return self.foo1(a)

然后,您必须创建解析器的实例并在此实例上调用foo2,例如:

parser = Parser()
print(parser.foo2('test'))