位置: 编程技术 - 正文

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 正则表达式实现计算器功能

  • 增值税专用发票有效期是多长时间
  • 融资租赁的两种模式
  • 企业购入汽车可以抵扣增值税吗
  • 增值税抵扣了,附加税怎么算
  • 库存盘盈盘亏要调整吗
  • 金税四期影响企业贷款吗
  • 差旅费处理会计分录
  • 专项应付款在资产负债表中如何列示
  • 固定资产一次性扣除怎么做账
  • 一般纳税人财务报表月报还是季报
  • 品种法怎么计算在产品成本
  • 企业所得税讲解
  • 股权转让金是什么意思
  • 商品进销差价是资产类账户,其抵减的账户是
  • 银行存款日记账最后一行怎么填
  • 企业所得税税负怎么算
  • 2021申请一般纳税人公司的条件
  • 不交增值税就不交企业所得税吗
  • 网上勾选认证每月时间要求
  • 案例分析个人心得体会
  • 差额纳税和全额纳税比例
  • 暂估成本冲回之后成本变为负的
  • 没给顾客发票需要罚款吗
  • 农民工工资怎么交个人所得税
  • 研发企业税率
  • 收到汇票怎么承兑
  • 更改onedrive文件夹位置
  • 企业抄报税怎样操作
  • 员工奖励股权
  • 独资企业弥补亏损怎么办
  • vue项目eslint配置
  • php上传多文件
  • php绘制图片
  • 序列标注技术应用
  • 关于猿猴的作文
  • fsck命令详解
  • 增值税专用发票的税率是多少啊
  • 增值税专用发票怎么开
  • 净资产怎么增长
  • 财务报表逾期了两个月有罚款吗
  • phpcms验证码不显示
  • event loop exception null
  • 资本成本在财务报表中怎么体现
  • 小规模纳税人怎么开专票
  • 待处理财产损益期末余额在哪方
  • mysql数据库访问速度慢的解决方法
  • sql dbo
  • 处置使用过的固定资产,税率按多少
  • 团体意外险投保
  • 会计销售返利处理流程
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 客户给的现金如何转到公司账上
  • 车辆上牌的费用应付多少?
  • 出差补助没票怎么做账
  • 打车费用会计分录
  • 公司控股的子公司 法人能被追加吗
  • 商业承兑汇票开票流程
  • sql server利用触发器向表中输入时间
  • window10注册表
  • windows10x预览版
  • window7截图工具无法使用
  • macos 音量快捷键
  • win7如何录制电脑屏幕
  • windows8消费预览版中图片密码使用教程
  • linux配置文件命令
  • win7系统怎么锁定屏幕
  • windows10储存
  • opengl文档窗口是什么
  • python绘制球面
  • vue中使用foreach
  • windows下安装python环境
  • javascript详细介绍
  • sql怎么增删改
  • python如何用pi
  • 税务举报偷税漏税电话
  • 车辆购置税如何入账
  • 北京地方税务局电话
  • 丹阳税务局一分局领导
  • 徐州交社保有户口限制吗
  • 江苏省国税局局长是谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设