Python中文
首页
教程
问答
标签
搜索
登录
注册
python dict()初始化
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>从几周前开始,我就在学习Python。我有C++背景,这可能解释这个问题。你知道吗</p> <p>它是关于以下python代码的:</p> <pre><code>#!/usr/bin/python2 # -*- coding: utf-8 -*- class testA: dictionary = dict() def __init__(self): pass class testB: dictionary = None def __init__(self): self.dictionary = dict() def main(): ta1 = testA() ta2 = testA() tb1 = testB() tb2 = testB() ta1.dictionary["test1"] = 1 ta1.dictionary["test2"] = 2 ta2.dictionary["test3"] = 3 ta2.dictionary["test4"] = 4 print "testA ta1" for key in ta1.dictionary.keys(): print " " + key + "\t" + str(ta1.dictionary[key]) print "testA ta2" for key in ta2.dictionary.keys(): print " " + key + "\t" + str(ta2.dictionary[key]) tb1.dictionary["test1"] = 1 tb1.dictionary["test2"] = 2 tb2.dictionary["test3"] = 3 tb2.dictionary["test4"] = 4 print "testB tb1" for key in tb1.dictionary.keys(): print " " + key + "\t" + str(tb1.dictionary[key]) print "testB tb2" for key in tb2.dictionary.keys(): print " " + key + "\t" + str(tb2.dictionary[key]) if __name__ == '__main__': main() </code></pre> <p>此代码的输出为:</p> <pre><code>$ python2 pytest.py testA ta1 test1 1 test3 3 test2 2 test4 4 testA ta2 test1 1 test3 3 test2 2 test4 4 testB tb1 test1 1 test2 2 testB tb2 test3 3 test4 4 </code></pre> <p>但是,我不明白为什么ta1和ta2中的词典是一样的。这种行为的原因是什么?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>答案很简单:字典(只有一个)是在类创建时创建的。每个实例都将共享该dict</p> <p>如果您希望为每个实例创建一个dict,那么可以在<code>__init__()</code>方法中使用它。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
8 回答
Django:'DeleteQuery'对象没有属性'add'
3 回答
Django:'ModelForm'对象没有属性
10 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
9 回答
Django:'Python管理.pysyncdb'不创建我的架构表
1 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
10 回答
Django:'readonly'属性在我的ModelForm上不起作用
7 回答
Django:'RegisterEmployeeView'对象没有属性'object'
1 回答
Django:'str'对象没有属性'get'
8 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
5 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
2 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
3 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
4 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
2 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
10 回答
Django:“BaseTable”对象不支持索引
10 回答
Django:“collections.OrderedDict”对象不可调用
6 回答
Django:“Country”对象没有属性“all”
1 回答
Django:“Data”对象没有属性“save”
2 回答
Django:“datetime”类型的对象不是JSON serializab
8 回答