为什么在Python元类示例中无法使用key访问字典对应的value?
问题原因
你报错的核心是混淆了类对象的打印输出文本和类对象本身:mytest._instances字典的key是真实的mytest类对象,不是终端打印出来的<class '__main__.mytest'>这个字符串,所以不管是直接写尖括号语法(本身就不符合Python语法)还是用字符串当key,都会报错。
正确访问方式
直接用类名mytest作为key取值即可:
mytest._instances[mytest]
执行后就会返回你创建的mytest实例对象:<__main__.mytest object at 0x7f3286774b20>。
其他等效写法
如果你需要动态获取key,也可以用以下方式,效果和上面完全一致:
- 通过实例反查类当key:
mytest._instances[type(mytest())] - 遍历字典key取值:
for key in mytest._instances.keys(): print(mytest._instances[key])
内容的提问来源于stack exchange,提问作者showkey
相关产品推荐
相关产品推荐

