我是编程新手,我遇到了一个无法找到答案的问题......所以这就是:
`class MyClass:
def printsmth():
print("Hello")
def main():
printsmth()
if __name__ == '__main__':main()`
我收到错误消息:
Traceback (most recent call last):
File "untitled.py", line 1, in <module>
class MyClass:
File "untitled.py", line 6, in MyClass
if __name__ == '__main__':main()
File "untitled.py", line 5, in main
printsmth()
NameError: name 'printsmth' is not defined
包含的代码只是一个示例,但它与我的实际代码相同,如果我将代码从main()转移到if name =='< strong> main '比它完美无缺。问题是我想在代码的某些部分重新启动main()方法,但我甚至没有去过那个,因为我想不出这个错误的解决方案:/你能帮助我吗?
P.S我试图从MyClass移动main()和 name ==' main ',但它没有用。
答案 0 :(得分:0)
您忘记将self
作为方法的第一个参数传递。完成此操作后,您可以调用self.printsmth()
作为方法。现在它很困惑,因为你把它称为函数而不是方法。
class MyClass:
def printsmth(self):
print("Hello")
def main(self):
self.printsmth()