NameError:全局名称“ myExample2”未定义#模块


问题内容

这是我的example.py文件:

from myimport import *
def main():
    myimport2 = myimport(10)
    myimport2.myExample()

if __name__ == "__main__":
    main()

这是myimport.py文件:

class myClass:
    def __init__(self, number):
        self.number = number
    def myExample(self):
        result = myExample2(self.number) - self.number
        print(result)
    def myExample2(num):
        return num*num

运行example.py文件时,出现以下错误:

NameError: global name 'myExample2' is not defined

我该如何解决?


问题答案:

这是您的代码的简单修复。

from myimport import myClass #import the class you needed

def main():
    myClassInstance = myClass(10) #Create an instance of that class
    myClassInstance.myExample()

if __name__ == "__main__":
    main()

myimport.py

class myClass:
    def __init__(self, number):
        self.number = number
    def myExample(self):
        result = self.myExample2(self.number) - self.number
        print(result)
    def myExample2(self, num): #the instance object is always needed 
        #as the first argument in a class method
        return num*num