Python中的激活方法

-1 投票
4 回答
3819 浏览
提问于 2025-04-16 22:30

我正在尝试把我的Python程序放在类里面。但是当我写了这个:

class program:

    def test(value):
        print value + 1

    def functionTest():
        a = test(2)

    if __name__ == "__main__":
        functionTest()

我遇到了一个错误:NameError: global name 'test' is not defined

我该怎么做才能“激活”这个test方法呢?非常感谢!

4 个回答

4

你为什么把所有东西都放在一个类里呢?这又不是Java语言。只要把类的那一行代码去掉(还有把里面的内容缩进去掉),程序就能正常运行了。

5

你并不需要一个类来完成你想做的事情。其实,使用类没有什么意义。你可以这样写你的代码:

def test(value):
    print value + 1

def functionTest():
    test(2)

if __name__ == "__main__":
    functionTest()

类确实很重要也很有用,但我猜你可能刚开始学习Python。所以在使用类之前,先花点时间了解一下函数、命令等等。 :) (另外,别忘了去看看这个教程 - 它是必不可少的)

6
  1. 你需要把 self 作为一个参数传进去。
  2. 你需要用 self.test() 来调用 test 方法。
  3. 你需要创建一个 Program 的实例(也就是从你的类里生成一个对象)。
  4. 你需要在那个对象上调用方法。
  5. 用来创建对象和调用方法的代码不应该放在你的类里面(缩进不对)。
class Program:
    def test(self, value):
        print value + 1

    def functionTest(self):
        a = self.test(2)

if __name__ == "__main__":
    myprog = Program()
    myprog.functionTest()

以上这些都是在假设你确实想用类并在代码中使用它。如果不是,可以看看 @brandizzi 的回答。

撰写回答