Nested Python class needs to access variable in enclosing class

前端 未结 6 2237
难免孤独
难免孤独 2020-12-20 13:02

I\'ve seen a few \"solutions\" to this, but the solution every time seems to be \"Don\'t use nested classes, define the classes outside and then use them normally\". I don\'

6条回答
  •  一生所求
    2020-12-20 13:22

    You don't need two classes here. Here's your example code written in a more concise fashion.

    class ChildClass:
        def __init__(self, stream):
            idx = stream.read_ui16()
            self.name = self.constant_pool[idx]
    
    def makeChildren(stream):
        ChildClass.constant_pool = ConstantPool(stream)
        return [ChildClass(stream) for i in range(stream.read_ui16())]
    

    Welcome to Python. Classes are mutable at runtime. Enjoy.

提交回复
热议问题