【Python基础编程230 ● 面向对象 ● 类属性】


 ---------Python基础编程---------

Author : AI菌


【内容讲解】  

1、类属性:
   1) 也是一种属性;
   2) 它存储的数据,是所有的实例对象共享共用的数据,
      在内存中只有一份,不属于某一个实例对象专有,
      是所有的实例对象共有的.
   3) 当某一个数据是所有的实例对象共享共用时,
      才使用一个类属性存储这个数据.

2、定义类属性的格式:
     在类的里面,方法的外面定义.
     属性名 = 属性值

3、类属性的访问方式:
     1) 实例对象名.类属性名
     2) 类名.类属性名(推荐)

4、修改类属性:
   1) 类属性只能通过类对象(类名)修改.
   2) 不能通过实例对象修改.

【代码演示】

"""
1、类属性:
   1) 也是一种属性;
   2) 它存储的数据,是所有的实例对象共享共用的数据,
      在内存中只有一份,不属于某一个实例对象专有,
      是所有的实例对象共有的.
   3) 当某一个数据是所有的实例对象共享共用时,
      才使用一个类属性存储这个数据.

2、定义类属性的格式:
     在类的里面,方法的外面定义.
     属性名 = 属性值

3、类属性的访问方式:
     1) 实例对象名.类属性名
     2) 类名.类属性名(推荐)

4、修改类属性:
   1) 类属性只能通过类对象(类名)修改.
   2) 不能通过实例对象修改.
"""


class Student:
    # 定义类属性
    geli_conditioner = "格力空调"

    # 类属性也可以定义成私有的,私有的类属性不能在类的外面访问,只能在类的里面访问
    # 私有类属性定义格式:在类属性前面加两个下划线.
    __haier_conditioner = "海尔空调"

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def study(self):
        # 3.通过实例对象修改类属性
        # 当通过实例对象修改类属性时,并不是真正修改类属性,而是定义一个同名实例属性,
        # 以后通过实例对象访问这个属性时访问的是实例属性.
        self.__haier_conditioner = "美的空调"
        print(self.__haier_conditioner)  # 打印的是美的空调

        # 访问类属性,没有修改成功,还是海尔空调
        print(Student.__haier_conditioner)  # 打印的是海尔空调

        # 4.通过类名.类属性名修改类属性
        Student.__haier_conditioner = "robot空调"
        print(Student.__haier_conditioner)  # robot空调


s1 = Student("robot", 19, "")

# 类属性的访问方式
# 1. 实例对象名.类属性名
print(s1.geli_conditioner)
# 2. 类名.类属性名(推荐)
print(Student.geli_conditioner)

s1.study()

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

【加群交流】



原文地址:https://www.cnblogs.com/hezhiyao/p/13426260.html