Python中文
首页
教程
问答
标签
搜索
登录
注册
Python非直观成员变量behaviou
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>此脚本:</p> <pre><code>class testa(): a = [] class testb(): def __init__(self): self.a = [] ta1 = testa(); ta1.a.append(1); ta2 = testa(); ta2.a.append(2) tb1 = testb(); tb1.a.append(1); tb2 = testb(); tb2.a.append(2) print ta1.a, ta2.a, tb1.a, tb2.a </code></pre> <p>产生以下输出:</p> ^{pr2}$ <p>但我预料到了</p> <pre><code>[1] [2] [1] [2] </code></pre> <p>为什么我错了?testa和testb的定义似乎和我一样,那么为什么行为会发生如此剧烈的变化呢?!在</p> <p><strong>编辑:</strong>这似乎不直观,因为它与int和str等其他类型的行为方式不同。由于某些原因,当在<strong>init</strong>中未初始化时,列表被创建为类变量,但是不管发生什么,int和str都被创建为对象变量。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>一个是类变量,另一个是实例变量。<br/> 类变量在类的所有成员之间共享,实例变量对每个实例都是唯一的。<br/> <a href="http://docs.python.org/tutorial/classes.html" rel="nofollow">http://docs.python.org/tutorial/classes.html</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
1 回答
将Pandas数据帧转换为scipy稀疏矩阵
6 回答
将Pandas数据帧转换为Spark Datafram时出现问题
5 回答
将pandas数据帧转换为spark DataFram时出错
9 回答
将Pandas数据帧转换为spark datafram时收到错误
2 回答
将Pandas数据帧转换为Spark数据帧
1 回答
将Pandas数据帧转换为Tensorflow数据
5 回答
将Pandas数据帧转换为tkinter obj
2 回答
将pandas数据帧转换为XML
6 回答
将Pandas数据帧转换为值sql语句
9 回答
将pandas数据帧转换为元组
2 回答
将pandas数据帧转换为元组列表
9 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
2 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
9 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
1 回答
将pandas数据帧转换为内存中类似文件的对象?
2 回答
将Pandas数据帧转换为内存功能(&F)
1 回答
将pandas数据帧转换为列表列表
7 回答
将pandas数据帧转换为列表列表以输入到RNN
3 回答
将Pandas数据帧转换为单行DataFram
1 回答