在Python中激活方法

时间:2011-07-29 13:01:05

标签: python

我正在尝试在类中设置我的Python程序。但是当我有这个:

class program:

    def test(value):
        print value + 1

    def functionTest():
        a = test(2)

    if __name__ == "__main__":
        functionTest()

我收到错误: NameError:未定义全局名称'test'

我需要做些什么来“激活”测试方法? 非常感谢!

4 个答案:

答案 0 :(得分:6)

class Program:
    def test(self, value):
        print value + 1

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

if __name__ == "__main__":
    myprog = Program()
    myprog.functionTest()
  1. 您必须提供self作为参数
  2. 您必须使用test
  3. 致电self.test()
  4. 您必须实例化程序(从您的班级中创建一个对象)
  5. 您必须在该对象上调用该方法
  6. 实例化对象并调用方法的代码不应该在你的类中(错误的缩进)
  7. 以上所有假设你真的想要一个类并在你的代码中使用它。如果没有,请看看@ brandizzi的答案

答案 1 :(得分:4)

您不需要课程来完成您想要做的事情。实际上,使用一个没有任何意义。只需用这种方式编写代码:

def test(value):
    print value + 1

def functionTest():
    test(2)

if __name__ == "__main__":
    functionTest()

课程非常重要且有用,但我敢打赌你们已经开始学习Python了。因此,在开始使用类之前,请花一些时间查看函数,命令等。(另外,不要忘记阅读the tutorial - 它是必不可少的

答案 2 :(得分:3)

为什么要在课堂上包装所有内容?这不是java。只需删除类程序行(以及所有内容的缩进)即可。

答案 3 :(得分:1)

你必须致电

 myprogram = Program()

除了能够将您的功能称为

myprogram.funtionTest()

您必须将self作为参数添加到Program方法中。

这是一个有效的例子:

class Program():

    def test(self, value):
        print value + 1

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

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