位置: 编程技术 - 正文

python中类变量与成员变量的使用注意点总结(python的类变量和成员变量)

编辑:rootadmin

推荐整理分享python中类变量与成员变量的使用注意点总结(python的类变量和成员变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的类变量,python的类变量和成员变量,python中的类变量,python类变量与字典,python中的类变量,python类变量与字典,python类变量与字典,python 类变量和类方法,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解。后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现python也有类似的类变量和实例变量,下面来看看详细的介绍。

看下面的示例代码:

x就是类变量,y就是实例变量。

python中类变量与成员变量的使用注意点总结(python的类变量和成员变量)

原则上是没有错的,但是实际用的时候就发现一些恶心的问题(也就是我找了三天的bug)。。。比如下面的代码:

这里很明显x和y都是类变量,add的作用是分别对x和y做出修改。然后构造一个实例a,对实例a的值进行修改,最后构造实例b。

本以为这个结果是显而易见的,然而他输出的结果却是:

问题在哪?明明x和y都是类变量,在第二组print中为什么a.x和b.x一样,但是a.y和b.y就是不一样呢?

想了半天悟了一个道理。。。就是对于python来说,类变量的确是所有类共有的东西。但是那是在我们用的同一个引用的情况下,比如对于[]对象的append方法就是公用一个类变量了;但是对于赋值语句来说,如果在类中对类变量使用了赋值语句,那么python就会生成一个该对象的副本,以后的操作都是基于这个副本而不会对原来的类对象造成影响。这样就解释的通上面的现象了。

那么为了杜绝自己忘记类变量和实例变量的区别导致本不想公用变量的时候公用了变量,最好的办法就是在每个类中使用变量的时候重新初始化一下,这样就不会导致意外了。

总结

标签: python的类变量和成员变量

本文链接地址:https://www.jiuchutong.com/biancheng/375579.html 转载请保留说明!

上一篇:Python urls.py的三种配置写法实例详解(python urljoin)

下一篇:Python 正则表达式实现计算器功能

  • 水资源费如何入账
  • 企业所得税的会计处理
  • 公司法人和经理承担责任一样吗
  • 发票冲红重开,重开时是按新税率还是旧税率
  • 预计产品质量保证损失是什么意思
  • 赞助费账务处理
  • 收到投资款怎么做账
  • 红字发票重复提交了数据该怎么处理
  • 民非企业增值税减免账务处理
  • 员工出差有补助吗
  • 企业所得税年报错了怎么更正
  • 财政科技经费专项拨款的会计处理
  • 申报怎么打印
  • 留存收益转增资本有什么好处
  • 红字撤销需要带什么去税务局
  • 知识产权服务项目
  • 广告宣传怎么开发票
  • 电子发票能不能作废重开
  • 资产负债表用来调节利润的负债
  • 管理费用职工福利费
  • 苹果13promax哪个颜色最贵
  • macOS Big Sur 11.0.1(20B29)正式版发布(附可使用的Mac机型)
  • 应如何做会计分录表
  • mac菜单栏如何调整位置
  • 收到人才引进已受理的短信
  • 业务招待费进项税额转出表二
  • 小米路由器青春版r1cl参数
  • 财务人员如何管控费用支出
  • php处理xml
  • php file_get_contents smb
  • 固定资产清理科目核算内容
  • 百度地图api的使用
  • 自产产品用于福利账务处理
  • 企业收到微信和微信消息
  • phpcms模板制作教程
  • sql2005安装不上
  • mysql存储过程用什么调用
  • mongodb bi
  • 所得税预缴申报表资产总额怎么填
  • 什么是电子承诺
  • sqlserver触发器写法
  • mysql索引之间的区别
  • 公司交的养老保险的钱可以取出来吗
  • 发票冲红重开摘要如何写合适?
  • 工资扣员工的罚款入什么科目
  • 软件续费应记什么科目
  • 劳务派遣公司主营业务成本是什么
  • 上年的应收帐款怎么记账
  • 折旧计入主营业务成本的情况
  • 挂靠经营的会计处理是?
  • 金蝶专业版怎么反过账
  • 长期待摊费用的摊销期限应该是
  • 企业对处于不同位置的产品或服务制定不同的价格
  • 私企做会计风险大吗
  • windows自带截图软件
  • windows10如何更改管理员账户
  • ubuntu1
  • mentohust配置
  • Windows文件夹共享权限不足
  • win7显示
  • macbook屏幕自动亮度调节
  • Win10 Mobile RS1预览版14267.1004 修复Lumia 550充电问题
  • android openconnect
  • shell案例讲解
  • python中pyinstaller
  • javascript入门教程
  • jquery常用操作
  • linuxyum安装php7
  • 批处理文件修改注册表键值
  • css怎么画图
  • python 任务 调度 管理
  • 设置拉我进群必须经过我同意
  • shell 字符串trim
  • javascript第二章上机怎么写
  • javascript引用值
  • js设置按钮禁用和开启
  • js实现的奥运倒计时时钟效果代码
  • 天津违规养犬的处罚依据
  • 公司借款给员工是否合法
  • 买车购置税去哪里交钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设