未定义Python NameError(def)

时间:2017-04-27 02:10:50

标签: python function nameerror

我遇到以下Python代码时出现问题:

class Methods:

    def method1(n):
        #method1 code

    def method2(N):
        #some method2 code
            for number in method1(1):
                #more method2 code

def main():
    m = Methods
    for number in m.method2(4):
            #conditional code goes here

if __name__ == '__main__':
    main()

当我运行此代码时,我得到NameError:name' method1'没有定义。如何解决此错误?

2 个答案:

答案 0 :(得分:3)

添加自我。在它面前:

self.method1(1)

同时将您的方法签名更改为:

def method1(self, n):

def method2(self, n):

答案 1 :(得分:1)

更改您的代码如下:

class Methods:

    def method1(self,n):
        #method1 code

    def method2(self,N):
        #some method2 code
        for number in self.method1(1):
            #more method2 code

def main():
    m = Methods()
    for number in m.method2(4):
        #conditional code goes here

if __name__ == '__main__':
    main()
  1. 将自我参数添加到班级内的每个方法
  2. 要调用类中的方法,请使用self.methodName(parameters)
  3. 要创建您的类的实例,您应该使用paranteses为ex编写类名:m =方法()