类属性相关操作

发布于 更新于
本文目录
  1. 一、类属性的定义
  2. 二、类属性的访问
  3. 三、类属性的修改

技术文章测试开发

前言:很多同学在学习类和对象的时候,对类属性一直不理解,内部访问外部访问就给绕晕了,属性的修改更是云里雾里,今天我们就来讲一下,希望这篇博客对大家有帮助。

前言:很多同学在学习类和对象的时候,对类属性一直不理解,内部访问外部访问就给绕晕了,属性的修改更是云里雾里,今天我们就来讲一下,希望这篇博客对大家有帮助。

一、类属性的定义

  1. ##### 定义在类中且在方法外的变量,称之为类属性。

     class TestDemo:
             # 此处的name这个变量就叫类属性
     	name = "老王"

二、类属性的访问

  1. ##### 类属性的访问分为:类内部访问、类外部访问

  2. ##### 类内部访问

     class TestDemo:
         # 此处的name这个变量就叫类属性
         name = "老王"
    
         def test_01(self):
             # 在类内部对类属性进行访问
             print(self.name)
    
     if __name__ == '__main__':
         cl = TestDemo() # 类实例化
         cl.test_01() # 调用test_01方法
     输出:
     老王
  3. ##### 类外部访问

     class TestDemo:
         # 此处的name这个变量就叫类属性
         name = "老王"
    
     if __name__ == '__main__':
         cl = TestDemo() # 类实例化
         result = cl.name  # 通过类实例访问类属性
         print("类实例访问类属性 =",result)
    
         result2=TestDemo.name # 通过类访问类属性
         print("类访问类属性 =", result2)
     输出:
     类实例访问类属性 = 老王
     类访问类属性 = 老王

三、类属性的修改

  1. ##### 类属性为不可变类型

     class Dog:
         # 类属性
         dog_name = "大黄"
         print("原来dog_name内存地址:",id(dog_name))
    
     if __name__ == '__main__':
         print("修改前类属性:",Dog.dog_name)
         Dog.dog_name='小黑'
         print("修改后dog_name内存地址:",id(Dog.dog_name))
         print("修改后类属性:",Dog.dog_name)
    
     输出:
     原来dog_name内存地址: 4493585640
     修改前类属性: 大黄
     修改后dog_name内存地址: 4494022064
     修改后类属性: 小黑
    
     结论:当类属性为不可变类型时,对类属性进行修改,实际上只是改变了类属性的引用地址,并未对齐进行修改
  2. ##### 类属性为可变类型

     class Dog:
         # 类属性
         dog_name = ["大黄"]
         print("原来dog_name内存地址:",id(dog_name))
    
     if __name__ == '__main__':
         print("修改前类属性:",Dog.dog_name)
         Dog.dog_name.append('小黑')
         print("修改后dog_name内存地址:",id(Dog.dog_name))
         print("修改后类属性:",Dog.dog_name)
    
     输出:
     原来dog_name内存地址: 4550404680
     修改前类属性: ['大黄']
     修改后dog_name内存地址: 4550404680
     修改后类属性: ['大黄', '小黑']
    
     结论:当类属性为可变类型时,可以对类属性进行修改

来源:testingpai

继续阅读