1. 类变量和实例变量
区分 | 读取 | 修改 | |
类变量 | 类中直接定义的变量 | 使用类名来读取(也可以通过对象读取类变量,对象读取类变量本质还是通过类读取类变量) | 只能通过类名修改 |
实例变量 | 使用对象定义的变量 | 使用定义该变量的对象来读取 | 使用定义该变量的对象来修改 |
class Dog:
describe = "犬科哺乳动物"
Chinese_name = "狗"
English_name = "Dog"
def __init__(self, name, classification):
self.name = name
self.classification = classification
# 通过类名读取类变量
print(Dog.describe) # 犬科哺乳动物
# 通过类名修改类变量
Dog.describe = "人类最好的朋友"
print(Dog.describe) # 人类最好的朋友
# 通过对象访问类变量
my_dog = Dog("林林", "我最喜欢的狗")
print(my_dog.describe) # 人类最好的朋友
不可以通过对象来修改类变量,这种情况其实是定义了一个实例变量;
# 创建一个对象
my_dog = Dog("林林", "斗牛犬")
my_dog.describe = "我最喜欢的狗"
print(Dog.describe) # 犬科哺乳动物
print(my_dog.describe) # 我最喜欢的狗