# -*- coding: utf-8 -*- # author:wyatt # @time:2021/9/18 20:03 """ 什么是类 - 类是具备共同特征和共同行为的事物的统称 类的表示 - 驼峰式命名 - 字母数字下划线,不能数字开头,同函数 """ class Car: pass # 1.得到一个类 print(Car) """ 什么是对象 - 对象是一类事物中的一个成员(个体),object的中文是东西,对象又被称为实例 """ # 2.得到一个对象,实例,东西,物品 my_car = Car() print(my_car) """ 类和对象的关系 - 类 就相当于建造房子时的施工图纸,是一个模板,是负责创建房子(对象)的。 """ your_car = Car() print(your_car) # 打印出来会发现内存地址不同,意味着创建了两对象 # 两个不同的对象,不相等 print(Car() == Car()) # 打印结果false,因为是两个对象 """ 什么是类属性 类属性:在一个类当中的所有成员都一样的特征。 实例属性:类当中某个成员局部的特征。个体特征 python 中标识类属性和实例属性 类属性:Car1.elements 实例属性:Car1().elements 通过类修改了某个类属性后,再获取该类的属性,对象的属性会一起变 通过对象修改某个属性之后,my_car.elements, 整个类的elements不会变,只有my_car.elements 会变 """ # 在类定义作用域当中定义一个变量,称为类属性 class Car1: # 类属性、类变量 wheel = True drived = True elements = ['塑料', '铁', '塑胶'] # 类的里面获取类的变量 print(f'wheel:{wheel}') # 类外面获取类变量 print(Car1.elements) # 修改类属性 Car1.wheel = False print(Car1.wheel) # 对象可以获取类变量 my_car = Car1() print(my_car.elements) # 修改对象的属性 my_car.elements = ['锂电池'] # 这里仅修改了对象的属性,不会对类的属性修改 print(my_car.elements) print(Car1.elements) """ __init__ 初始化一个对象,可以加参数,但是返回值必须为None self 表示在对象的生产过程中,代表即将出生的对象的一个标记 在类定义里面使用的,类外面不可使用 """ class Car2: elements = ['铁'] def __init__(self, color, logo): # 本质还是个函数 # 必须有self # 实例属性,对象.属性名称 = 'value' self.color = color # 定义实例属性 self.logo = '宝马' print('一个Car2的对象正在产生') print('先执行第一步:放底盘') print('再执行第二步:装车架') print(f'换成{color}色') print(f'贴上{logo}') print(id(self)) # return None __init__只能返回None,python规定的,返回不用写 print(Car2) # 对象产生的过程,类整个模板,制造一个对象出来的过程,实例化 # 具体的过程,在Car(),调用类当中的__init__这个函数,初始化函数 # 可以自己指定产生对象的过程 yuze_car = Car2(color='红', logo='保时捷') print(yuze_car) # 获取实例属性: # - 类的里面:self.color # - 类的外面:yuze_car.color # yuze_car 和self 是相等的关系,打印出来的内存地址是一样的 print(id(yuze_car))