嵌套类中的python类可见性

时间:2017-10-27 20:33:44

标签: python class nested

如果我有这样的代码:

from enum import Enum

class MainClass:
    class Options(Enum):
        OPTION1=1
        OPTION2=2
        OPTION3=3
    class InternalOperation:
        def function1(self, o):
            if o == Options.OPTION1:
                x=0
                ......
       function1= staticmethod(function1)

我在执行此操作时遇到问题,并且不知道是否可以使枚举类对主类中的第二个类可见,以及如何实现。

1 个答案:

答案 0 :(得分:0)

您需要明确指定外部类MainClass.Options.OPTION1

from enum import Enum

class MainClass:
    class Options(Enum):
        OPTION1=1
        OPTION2=2
        OPTION3=3
    class InternalOperation:
        def function1(self, o):
            if o == MainClass.Options.OPTION1:
                x= 0

如果您使用self作为第一个参数,请不要将其设为静态方法。