哪位大佬帮忙看下,为什么我的程序会运行失败呀?
Topic source上面仁兄的第一个答案明显错误,下划线不是问题,这个留言板支持markdown语言 __init__
被转义了。
这个题目第二个问题应该是,直接使用Enum
方法的value
属性则是自动赋给成员的int
常量,默认从1开始计数。而本题要求Male = 0
与Female = 1
,不符合题意,应该使用Enum
派生出自定义类来解题。所以我们可以知道。
这题的正确写法应该是这样的Code:
class Gender(Enum):
Male = 0
Female = 1
@unique
class gender(Enum):
Male = 0 # Sun的value被设定为0
Female = 1
class Student(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
问题不在0,1上面,从1开始随意啊。 你的问题是'Female'用的是双引号,测试时第二个参数 Gender.Male多加了引号
-- coding: utf-8 --
from enum import Enum, unique
Gender = Enum('Gender', ('Male', 'Female')) class Student(object): def init(self, name, gender): self.name = name self.gender = gender
测试:
bart = Student('Bart', Gender.Male) if bart.gender == Gender.Male: print('测试通过!') else: print('测试失败!')
- 1
我的昵称有点长呢
from enum import Enum, unique Gender=Enum('Gender',('Male',"Female")) class Student(object): def init(self, name, gender): self.name = name self.gender = gender
bart = Student('Bart','Gender.Male') if bart.gender == Gender.Male: print('测试通过!') else: print('测试失败!') print(bart.gender,Gender.Male)