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)
召唤豆包!

False
解释:
DataSource是一个Enum(枚举)类,DataSource.tushare是该枚举类的一个成员对象,而非字符串。- 比较
'tushare' == DataSource.tushare时,是在比较字符串和枚举成员对象,两者类型不同,因此结果为False。
正确的比较方式:
若要判断枚举成员的值是否为 'tushare',应使用枚举成员的 .value 属性:
print('tushare' == DataSource.tushare.value) # 输出:True

浙公网安备 33010602011771号