Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么不能用它的键调用字典的值?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我们可以使用字典中的键调用该值</p> <pre><code>class mymodel(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super().__call__(*args, **kwargs) return cls._instances[cls] class mytest(object,metaclass=mymodel): pass </code></pre> <p>检查其属性</p> <pre><code>mytest._instances {} </code></pre> <p>第一次调用<code>mytest</code>,让它包含属性<code>_instances</code></p> <pre><code>mytest() <__main__.mytest object at 0x7f3286774b20> mytest._instances {<class '__main__.mytest'>: <__main__.mytest object at 0x7f3286774b20>} type(mytest._instances) <class 'dict'> mytest._instances.keys() dict_keys([<class '__main__.mytest'>]) </code></pre> <p>使用键调用其值:</p> <pre><code>mytest._instances[<class '__main__.mytest'>] File "<stdin>", line 1 mytest._instances[<class '__main__.mytest'>] ^ SyntaxError: invalid syntax mytest._instances["<class '__main__.mytest'>"] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: "<class '__main__.mytest'>" </code></pre> <p>尝试用反斜杠<code>\</code>转义:</p> <pre><code>mytest._instances[\<class '__main__.mytest'\>] File "<stdin>", line 1 SyntaxError: unexpected character after line continuation character mytest._instances["\<class '__main__.mytest'\>"] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: "\\<class '__main__.mytest'\\>" </code></pre> <p>那么如何用key调用<code>mytest._instances</code>中的值呢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这不是字符串,而是类对象</p> <p>你应使用:</p> <pre><code>mytest._instances[mytest] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
5 回答
Django:'DeleteQuery'对象没有属性'add'
9 回答
Django:'ModelForm'对象没有属性
9 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
10 回答
Django:'Python管理.pysyncdb'不创建我的架构表
10 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
6 回答
Django:'readonly'属性在我的ModelForm上不起作用
7 回答
Django:'RegisterEmployeeView'对象没有属性'object'
6 回答
Django:'str'对象没有属性'get'
2 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
7 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
6 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
8 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
3 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
4 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
7 回答
Django:“BaseTable”对象不支持索引
6 回答
Django:“collections.OrderedDict”对象不可调用
5 回答
Django:“Country”对象没有属性“all”
7 回答
Django:“Data”对象没有属性“save”
1 回答
Django:“datetime”类型的对象不是JSON serializab
1 回答