python - 如何在 Python 中从该类中创建嵌套类的实例?

标签 python oop inner-classes

class ExampleClass():
    def Example(self):
        self.nestedinstance = self.NestedClass()
        self.nestedinstance.makenew()


    class NestedClass():
        def makenew(self):
            newclass = NestedClass()

ExampleClass().Example()

当我运行上面的代码时,出现异常:name 'NestedClass' is not defined

是否有其他方法可以使用嵌套类执行此操作,还是我做错了什么?

最佳答案

理想情况下,如果创建一个新实例,您希望使用类方法,这是您如何做的示例:

class NestedClass():
    @classmethod
    def makenew(cls):
        newclass = cls()

或者,如果您想使用当前实例创建一个实例(例如,如果您需要传入一些参数),那么您可以使用 type(self)self.__class__.

class NestedClass():
    def makenew(self):
        newclass = type(self)()

虽然不知道您的用例,但这可能不是您想要的。

关于python - 如何在 Python 中从该类中创建嵌套类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68910208/

相关文章:

python - 一个类(class)中的一个类(class),这是固定的还是故意的?

Java - 如果字段具有相同名称,如何访问外部类字段

python - 如何将入口点/控制台脚本添加到使用参数的 setup.py

Python 正则表达式 - 完全匹配

javascript - 访问一个 javascript 类中的另一个类

python - 在 Cython 类中,使用 __init__ 和 __cinit__ 有什么区别?

python - 如何将管道(正则表达式或)应用于特定的模式子字符串,以便它匹配后跟一组字符或 EOL 的组?

python - 从列表 PySpark 的列表创建单行数据框

java - Java 中的静态和动态绑定(bind)

java - 嵌套基类出现莫名其妙的 Netbeans 可序列化警告