首页 > 编程语言 >python class 属性的<陷阱>

python class 属性的<陷阱>

时间:2022-10-12 16:35:06浏览次数:52  
标签:__ python self 写法 class def 属性

class 属性写法一

class B(object):
    b = []

    def add(self, i):
        self.b.append(i)

class 属性写法二

class B(object):
    def __init__(self):
        self.b = []

    def add(self, i):
        self.b.append(i)

问题

第一种 class 写法,在类的多次实例化时,属性 b 的地址不会变,第二种 class 写法则会改变。因此定义和使用类属性的时候,需要注意该问题,按需求定义类的属性。
image

官方解释

__init__ 创建的属性,会被所有实例化对象共享。
image

标签:__,python,self,写法,class,def,属性
From: https://www.cnblogs.com/magower/p/16784926.html

相关文章

  • 详解线性分类-朴素贝叶斯分类器(Naive Bayes Classifer)【白板推导系列笔记】
    朴素贝叶斯是对数据属性之间的关系进行了假设,即各个属性维度之间独立。 NB中我们假设$X$是离散的,服从多项分布(包括伯努利)。GDA的$X$可以用多维高斯分布表示,但是在NB中我......
  • python学习:枚举定义和使用
    1.定义在某些情况下,一个类的对象是有限且固定的,比如季节类,它只有4个对象;再比如行星类,目前只有8个对象。这种实例有限且固定的类,在Python中被称为枚举类。程序有两......
  • 【Python】HTML中Base64存储的图片转为本地图片文件
    我用jupyternotebook写了笔记之后,想导出markdown,然后导出不了,我就只能导出html,结果导出的html存储图片用的base64的方式……于是我就要把导出的html文档里面的base64格式......
  • 【Python进阶】实战Python图形文件操作基本编程
    欢迎来到专栏《Python进阶》。在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件、数据的处理,Python各种好用的库如NumPy、Scipy、Matplotlib、Pandas的使用等等......
  • 单链表-Python实现-jupyter->markdown 格式测试
    单链表引入顺序表理解Python变量的本质:变量存储的不是值,是值的地址理解Python的"="表示的是指向关系案例:交换a,b的值,a=10,b=20a,b=20,10t0:a这块内存(也有id),......
  • Python基础 - 序列结构
    对内置的常用数据结构,列表,字典,元组,集合的基本点看书整理.有序序列:列表、元组、字符串无序序列:字典、集合可变序列:列表、字典、集合不可变......
  • Python基础 - 面向对象
    面向对象基础入门,理解概念为主,其妙用需要很长时间去领悟哦.引入Python既是面向过程,也能面向对象.初学来理解为啥要面向对象,不太可能,用处......
  • 【AI白身境】学AI必备的python基础
    今天是新专栏《AI白身境》的第三篇,所谓白身,就是什么都不会,还没有进入角色。上一篇给大家介绍了如何正确使用Linux,如何利用shell,vim,git这三大神器。相信大家也掌握的差不多了......
  • 【AI白身境】只会用Python?g++,CMake和Makefile了解一下
    今天是新专栏《AI白身境》的第六篇,所谓白身,就是什么都不会,还没有进入角色。对于大部分小白来说,因为python用的太爽,以致于或许都没有听说过CMake。python是脚本语言,而当前大......
  • 【Python进阶】带你使用Matplotlib进行可视化
    欢迎来到专栏《Python进阶》。在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件、数据的处理,Python各种好用的库如NumPy、Scipy、Matplotlib、Pandas的使用等等......