有人知道吗,我如何使用Enum作为类构造函数参数?
我创建了这样的课程:
class Coin(Cash, Enum):
onePenny = 1
twoPens = 2
fivePens = 5
ones = 0
twos = 0
fives = 0
def __init__(self, val):
if val == onePenny:
Cash.value = onePenny.value
Coin.ones += 1
elif val == twoPens:
Cash.value = twoPens.value
Coin.twos += 1
else:
print('Not existing coin.')
当我尝试创建一个对象时,我得到NameError:
NameError:名称'onePenny'未定义
如何解决?
答案 0 :(得分:0)
class
语句没有定义新的范围,因此您需要像在ones
和twos
之外那样在语句之外引用它。
def __init__(self, val):
if (val == Coin.onePenny):
Cash.value = Coin.onePenny.value
Coin.ones += 1
elif (val == Coin.twoPens):
Cash.value = Coin.twoPens.value
Coin.twos += 1
else:
print('Not existing coin.')