首页 > 其他分享 >类变量(类对象变量)和实例对象变量详解

类变量(类对象变量)和实例对象变量详解

时间:2022-10-30 16:34:41浏览次数:49  
标签:num 变量 实例 对象 详解 def 赋值

类变量总结:

第一:

  • 作为类对象的变量每次创建一个新的实例对象时,类对象变量就多一个引用指向它

  • 通过实例对象来修改类对象变量的取值,实际上是让实例对象的data指向了另外一块内存变量。实例对象是类对象的一个拷贝。

第二:

  • 改变类对象的变量的值后,相应实例的值也会发生变化。

  • 类对象的变量在实例中实际上是只读的,任何实例都无法修改类对象变量的值(test1.data=2 实际上是让实例的变量指向了另一块内存,当再生成一个新的对象时,值仍然还是1),通过实例对象.__class_.data可以修改类对象的属性值。

 

类变量和实例变量的区别在于:

  • 类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;

  • 实例变量则属对象私有,某一个对象将其值改变,不影响其他对象


python类变量被赋值

(1)类的设计里:

class里def外,通过变量名能被赋值

def里通过类对象即类名字的点运算变量名可被赋值

(2)程序里:通过类对象(类名字)的点运算类名字也可被赋值


Python实例对象变量被赋值

(1)类的设计时:def里通过self点变量名被赋值,init里和其他已被调用的方法函数里都可以

(2)程序里:通过实例对象的点运算变量名可被赋值

 
# 类和实例 变量被赋值

class test(object):
    new = "new 变化前" # 通过变量名能被赋值
    old = "old 变化前"

    def __init__(self): 
        self.num = "num 变化前"
        self.age = "age 变化前"

    def freedom(self):
        test.new = "new def 里被赋值"
        self.num = "num def 里被赋值"

t = test()

test.old = "old 程序里被赋值"
t.age = "num 程序里被赋值"

print(t.age) # num 程序里被赋值
print(test.old) # old 程序里被赋值

t.freedom()
print(test.new) # new def 里被赋值
print(t.num) # num def 里被赋值

 

标签:num,变量,实例,对象,详解,def,赋值
From: https://www.cnblogs.com/songshutai/p/16841562.html

相关文章

  • Matlab的regionprops详解
    招募大量matlab技术人员,有大量matlab需求订单,均为个人短期可以完成,有时间的朋友可以加我微信  :Ahxyz6666 matlab函数_连通区域1、matlab函数bwareaopen──删除小面......
  • java面向对象-->封装
    封装封装的作用是在于:如何正确设计对象的属性和方法。封装的重要原则:对象代表什么,就要封装对应的数据,并提供数据对应的行为。比如说人画圆,涉及到了人和圆俩个对象,画圆......
  • 【博学谷学习记录】超强总结,用心分享|Python容器详解
    一、Python中容器的介绍容器:也可以称为是数据序列,或者高级数据类型,也是Python中的数据类型。容器中可以存放多个数据。Python中常用的容器有4种:list(列表)、......
  • 图解JS事件对象screenX、clientX、pageX, offsetX区别
    screenX、clientX、pageX和offsetX的区别1、screenX和screenY参照点:电脑屏幕左上角screenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量screenY:鼠标点击位置相对......
  • np.clip()的用法和python,numpy中np.random.choice()的用法详解
    np.clip()的用法 numpy.clip(a,a_min,a_max,out=None)Clip(limit)thevaluesinanarray.Givenaninterval,valuesoutsidetheintervalareclippedtoth......
  • equals和hashCode详解
    equals和hashCode详解http://www.cnblogs.com/Qian123/p/5703507.html阅读目录equals()方法详解hashcode()方法详解Hashset、Hashmap、Hashtable与hashcode()和equa......
  • 对象的属性
    对象(object)具有属性(property)。例如,你正在使用的电脑是一个对象,它就有键盘这个属性,你用的罗技键盘,罗技键盘就是键盘值,你不用罗技键盘,改用雷神键盘了,那可以说是修改了属性值。......
  • DOM的Node对象和案例4动态表格添加
    DOM的Node对象Node:节点对象,其他5个的父对象特点:所有dom对象都可以被认为是一个节点方法:CRUDdom树:appendChild():向节点的子节点列表的......
  • Vue3中 响应式 API ( readonly、shallowReadonly、toRaw、markRaw ) 详解
    ​​传送门:Vue3中响应式API(reactive、ref、toRef、toRefs)详解​​传送门:Vue3中响应式API(shallowReactive、shallowRef、triggerRef、customRef)详解1.readonly......
  • 软考中级(软件设计师)——面向对象技术(上午12分)(下午30分)(超重点)
    软考中级(软件设计师)——面向对象技术(上午12分)(重点)目录​​软考中级(软件设计师)——面向对象技术(上午12分)(重点)​​​​面向对象的基本概念(★★★★★)​​​​面......