Python面向对象--类和对象

1. 类(class)

类是具备共同特征和共同行为的事物的统称。如:人类,动物,水果等

4个人,是一个类,2个人是一个类,1个人也是一个类。类是一个起步的。

格式:

class  类的名称:

        类的内容

类名称也是一个标识符,命名规则和变量命名规则一样;类的命名是大驼峰格式:TestCase

2. 对象(objec)

对象是类的某个实体或某个成员。对象也称为实体,实例

class Car:
    pass
# 得到一个类,直接打印类名称
print(Car)
# 得到一个对象,打印类名称()
print(Car())

运行结果:

<class '__main__.Car'>
<__main__.Car object at 0x0000025C7FDF42E8>

 0x0000025C7FDF42E8 这个是对象的内存地址

class Car:
    pass
my_car = Car()
your_car = Car()
# 两个不同的对象,内存地址是不一样的
print(my_car)
print(your_car)
print(my_car == your_car)

 运行结果:

<__main__.Car object at 0x000002BE5D844320>
<__main__.Car object at 0x000002BE5D8442B0>
False

虽然两个对象引用的是同一个类,但两个对象的内存地址是不一样的,所以两个对象是不相等的

 3. 类属性和实例属性

类属性(类变量):是在一个类当中所有的成员都一样的特征

Car.elements

对象属性:类当中某个成员具备的特征。个体特征

Car().elements

格式:

class  类名称:

        类属性

class Car:
    # 定义类属性,也可以叫类变量(因为是在类里定义的变量)
    wheel = True
    drived = True
    elements = ['塑料','铁','塑胶']
    # 类里面获取类变量
    print(elements)
# 类外面获取类属性
print(Car.drived)
# 修改类属性
Car.drived = False
print(Car.drived)
# 对象获取类属性
my_car = Car()
print(my_car.elements)

运行结果:

['塑料', '铁', '塑胶']
True
False
['塑料', '铁', '塑胶']

总结:不管是类外面,还是类里面都可以调用类属性

           类外面也可以修改类属性

           对象也可以获取类属性

修改类属性和修改对象属性是不同的

class Car:
    wheel = True
    drived = True
    elements = ['塑料','铁','塑胶']
my_car = Car()
# 修改类属性和修改对象属性是有区别的
my_car.elements = ['锂电池']
# 对象的elements
print(my_car.elements)
# 整个类的elements属性
print(Car.elements)

 运行结果:

['锂电池']
['塑料', '铁', '塑胶']

 注意:修改某个类属性之后,再获取该类的属性、对象的属性,全部是修改后的属性

修改某个类的对象属性之后,变的是对象自己的属性,类的属性是不会变的

 总结:

类属性和实例属性的区别:

一类属性是属于整个类的,所有成员都一样,实例属性是属于实例的,是个体特征。

二类属性可以被类和实例调用(类.属性,对象.属性),而实例属性只能被实例调用(对象.属性)

4.初始化函数__init__

对象产生的过程,类整个模板,制造一个对象出来的过程,实例化

具体的过程,在使用Car()时,自动调用类当中的__init__函数,初始化函数

可以自己指定产生对象的过程

初始化一个对象,可以加参数,但返回值 return 必须是 None

self 表示在对象生产过程中,代表即将出生或已经出生的对象的一个标记。是在类定义里面使用的,类的外面是不没有 self 的

class Car:
    # 类属性 属性名称 = value
    wheel = True
    drived = True
    elements = ['塑料','铁','塑胶']
    def __init__(self,color,logo):
        # 必须添加self,定义对象属性
        # 格式:self.属性名称 = value
        self.color = color
        self.logo = logo
        print('第一步:放底盘')
        print('第二步:装车架')
        print('第三步:装轮胎')
        print(f'第四步:喷{color}漆')
        print(f'第五步:印{logo}logo')
Car('白色','奔驰')

运行结果:

第一步:放底盘
第二步:装车架
第三步:装轮胎
第四步:喷白色漆
第五步:印奔驰logo

在类里面获取实例属性:self.属性名称

在类外面获取实例属性:对象名称.属性名称

self.属性名称 == 对象名称.属性名称

class Car:
    def __init__(self,color,logo):
        self.color = color
        self.logo = logo
        # 类里面获取实例属性 self.color
        print(self.color)
        print(id(self.color))
my_car = Car('白色','宝马')
# 类外面获取实例属性 my_car.color
print(my_car.color)
print(id(my_car.color))

 运行结果:

白色
2601245975632
白色
2601245975632

Guess you like

Origin blog.csdn.net/weixin_40611700/article/details/120388613