提问:
下面这段 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