I have the following code, and I wonder how I can prevent getting error.
class A:
    ...:     class Numbers(Enum):
    ...:         ONE = 1
    ...:         TWO = 2
    ...:     ODDS = (Numbers.ONE,)
    ...:     EVENS = [number for number in Numbers if not number in ODDS]
After running this snippet, I get NameError: name 'ODDS' is not defined.
Then I try to use ODDS as A.ODDS
In [71]: class A:
    ...:     class Numbers(Enum):
    ...:         ONE = 1
    ...:         TWO = 2
    ...:     ODDS = (Numbers.ONE,)
    ...:     EVENS = [number for number in Numbers if not number in A.ODDS]
    ...: 
In [72]: A.EVENS
Out[72]: [<Numbers.ONE: 1>, <Numbers.TWO: 2>]
However, I only want evens.. So if I try like this, the following happens.
In [76]: class A:
    ...:     class Numbers(Enum):
    ...:         ONE = 1
    ...:         TWO = 2
    ...:     ODDS = (Numbers.ONE,)
    ...:     EVENS = [number for number in A.Numbers if not number in A.ODDS]
    ...: 
In [77]: A.EVENS
Out[77]: [<Numbers.TWO: 2>]
Anyone knows why the last way work and previous ones do not?
Thanks
EDIT:
I restarted the shell and tried again
In [4]: class A:
   ...:     class Numbers(Enum):
   ...:         ONE = 1
   ...:         TWO = 2
   ...:     ODDS = (Numbers.ONE,)
   ...:     EVENS = [number for number in A.Numbers if not number in A.ODDS]
got NameError: name 'A' is not defined
