Python中的枚举类

提问:

下面这段 python 代码会输出什么样的结果?True还是False

class DataSource(Enum):
    akshare = "akshare"
    alpaca = "alpaca"
    alphavantage = "alphavantage"
    baostock = "baostock"
    binance = "binance"
    ccxt = "ccxt"
    iexcloud = "iexcloud"
    joinquant = "joinquant"
    quandl = "quandl"
    quantconnect = "quantconnect"
    rqdata = "rqdata"
    ricequant = "ricequant"
    tushare = "tushare"
    wrds = "wrds"
    yahoofinance = "yahoofinance"

print('tushare' == DataSource.tushare)

召唤豆包!

ee13d139acc81b8e1d25c2b79edc1608

False

解释:

  • DataSource 是一个 Enum(枚举)类,DataSource.tushare 是该枚举类的一个成员对象,而非字符串。
  • 比较 'tushare' == DataSource.tushare 时,是在比较字符串枚举成员对象,两者类型不同,因此结果为 False

正确的比较方式:

若要判断枚举成员的值是否为 'tushare',应使用枚举成员的 .value 属性:

print('tushare' == DataSource.tushare.value)  # 输出:True

posted @ 2025-09-10 14:47  icuic  阅读(7)  评论(0)    收藏  举报