This question already has an answer here:
- Python call function within class 2 answers
I'm having trouble with the following Python code:
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()
When I run this code, I get NameError: name 'method1' is not defined. How do I resolve this error?
Just add self. in front of it:
self.method1(1)
Also change your method signitures to:
def method1(self, n):
and
def method2(self, n):
Change your code like following:
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()
- Add a self parameter to every methods inside of your class
- To call a method inside of your class use self.methodName(parameters)
- To make instance of your class you should write class name with paranteses for ex: m = Methods()
来源:https://stackoverflow.com/questions/43647515/python-nameerror-def-is-not-defined