如何在Python中嵌套方法

如何在Python中嵌套方法,python,python-3.x,methods,Python,Python 3.x,Methods,这是一个相当基本的问题,然而,我努力在网上找到答案 我知道我们可以嵌套函数,但是我想看看我们是否可以对类中的方法进行嵌套 考虑下面的例子: class name: def name(self): def name2(self): print("Hello world!") return self.name2() m = name() m.name() 无论何时运行以下代

这是一个相当基本的问题,然而,我努力在网上找到答案

我知道我们可以嵌套函数,但是我想看看我们是否可以对类中的方法进行嵌套

考虑下面的例子:

class name:
     def name(self):
            def name2(self):
                print("Hello world!")
             return self.name2()
    
 m = name()
 m.name()
无论何时运行以下代码,都会出现此错误:

AttributeError: 'name' object has no attribute 'name2'
如果有人能帮我找到解决方案,我将不胜感激。

您的代码毫无意义。name2只是name方法的一个局部变量,是一个正则函数

类名: def名称自我: def名称2: 世界你好! 返回名称2 m=名称 m、 名字 好了,行了

Python方法是类对象的函数属性,它们不是特殊的或特别神奇的,但它们肯定不能定义为局部变量


我不知道你想要实现什么,也不知道你对整个事情的思维模式是什么,但我不确定这两者是否有任何意义。

我认为你误解了python类的工作方式。如果在方法中定义了独立函数,该函数不会自动成为类的成员

而是定义了一个函数,就像其他函数一样,添加了一个。作用域限制了函数在方法名称中的可见性


我认为您的查询非常有用。

如果您只想在name方法中调用self.name2,则不需要嵌套它们。只需创建两个单独的方法,并像这样调用它们这看起来可能是一个,请告诉我们您试图解决的问题,而不是显示您尝试的解决方案。感谢您的回答,我想我有点困惑了。谢谢,它让我更了解它!