# -*- 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))

 

posted on 2021-09-20 11:03  熊猫星人  阅读(44)  评论(0编辑  收藏  举报