0 votes
1 view
in Python by (22.4k points)

Here is my example.py file:

from myimport import *

def main():

    myimport2 = myimport(10)

    myimport2.myExample() 

if __name__ == "__main__":

    main()

And here is myimport.py file:

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

When I run example.py file, i have the following error:

NameError: global name 'myExample2' is not defined

How can I fix that?

2 Answers

0 votes
by (22.4k points)

Follow this simple way to fix your code.

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()

And the 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

0 votes
by (40.3k points)

Follow this simple way to fix your code.

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()

And the 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

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...