You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.5:提取类中加密货币变量的非switch实现方法

嘿,我来给你几个不用模拟switch(毕竟Python 3.5本身也没有原生switch语句嘛😉)就能提取类中加密货币变量值的实用方法,都是很Pythonic的路子:

方法1:直接访问实例属性或遍历__dict__

类的实例会把自身的属性存在__dict__字典里,你可以直接通过属性名获取单个值,也能批量遍历所有属性:

# 先定义你的加密货币类
class CryptoValues:
    def __init__(self):
        self.Bitcoin = 50000
        self.Monero = 150
        self.Ethereum = 3000  # 帮你修正了拼写哦~

# 实例化类
crypto = CryptoValues()

# 单个提取值
btc_value = crypto.Bitcoin
xmr_value = crypto.Monero
print(f"Bitcoin当前值:{btc_value}")

# 批量提取所有加密货币值(如果类里没有其他无关属性的话)
for crypto_name, value in crypto.__dict__.items():
    print(f"{crypto_name}: {value}")

如果类里还有其他非加密货币的属性,你可以加个过滤条件,只提取你关心的币种:

target_cryptos = ["Bitcoin", "Monero", "Ethereum"]
for name in target_cryptos:
    if hasattr(crypto, name):
        print(f"{name}: {getattr(crypto, name)}")
方法2:用getattr()动态获取值

如果你的币种名称是字符串形式(比如从用户输入、配置文件里读取的),getattr()会比一堆if-elif灵活太多:

crypto = CryptoValues()
# 假设你有个要查询的币种列表
query_list = ["Bitcoin", "Ethereum"]

for crypto_name in query_list:
    # 第三个参数是找不到属性时的默认值,避免报错
    value = getattr(crypto, crypto_name, "未知币种")
    print(f"{crypto_name}的值:{value}")
方法3:初始化时用字典存储值(推荐长期维护)

如果从一开始就把币种值存在类的字典属性里,后续提取、修改都会更方便,扩展性也更强:

class CryptoValues:
    def __init__(self):
        self.crypto_map = {
            "Bitcoin": 50000,
            "Monero": 150,
            "Ethereum": 3000
        }

# 提取值
crypto = CryptoValues()
# 单个提取
eth_value = crypto.crypto_map["Ethereum"]
# 批量遍历
for name, value in crypto.crypto_map.items():
    print(f"{name}: {value}")

这种方式后续要新增币种的话,直接在字典里加键值对就行,不用修改类的属性定义,维护起来省心很多~

内容的提问来源于stack exchange,提问作者shutup1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:14:59