python基础知识打卡第十一天
面向对象
面向对象是一种抽象化的编程思想,很多编程语言中都有的一种思想。
面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事。
在面向对象编程过程中,有两个重要组成部分:类 和对象。
类和对象的关系:可以用类去创建对象。
1、面向对象实现的方法
1.1 类的定义
类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物。
特征即是属性;
行为即是方法。
类比如是制造汽车时要用到的图纸,也就是说类是用来创建对象。
- 语法
class 类名():
代码
......
注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯。
1.2 创建对象
对象也称之为实例,创建对象的过程也叫作实例化对象。
创建对象语法:
对象名=类名()
# 创建对象
car1 = Car()
# <__main__.Car object at 0x0000018B7B224240>
print(car1)
# car1对象调用实例⽅法
car1.drive()
1.3 self
self指的是调用该函数的对象。
#定义类
class Car():
def drive(self):
print("我是老司机,我会开车")
print(self)
# 创建对象
car1=Car()
print(car1)
car1.drive()#car1对象调用实例的方法
car2=Car()
print(car2)
注意:打印对象和self得到的结果是一致的,都是当前对象在内存中存储地址。
1.4 添加和获取对象属性
属性即是特征,比如:汽车的宽度、高度、重量…
对象属性既可以在类外面添加和获取,也能在类内部添加和获取。
1.4.1 类外面添加对象的属性
语法:
对象名.属性名=值
car1.height=1400
car1.width=1700
ca1.lenth=4700
1.4.2类外面获取对象的属性
语法:
对象名.属性名
print(f'car1汽车的宽度是{car1.width}')
print(f'car1汽车的高度是{car1.height}')
1.4.3类内部获取对象的属性
语法:self.属性名
# 定义类
class Car():
def print_info(self):
# 类⾥里面获取实例属性
print(f'car1汽车的宽度是{car1.width}')
print(f'car1汽车的高度是{car1.height}')
# 创建对象
car1= Car()
# 添加实例属性
car1.width = 1700
car1.height = 1400
car1.print_info()
1.5 魔法方法
在Python中,_xx_()’’ 的函数叫做魔法方法,指的是具有特殊功能的函数。
1.5.1 _init_()
_init_() 方法的作用:初始化对象。
#定义类
class Car():
# 定义初始化功能的函数
def __init__(self):
#添加实例属性
self.width=1700
self.height=1400
def print_info(self):
# 类⾥里面获取实例属性
print(f'car1汽车的宽度是{self.width}')
print(f'car1汽车的高度{self.height}')
# 创建对象
car1=Car()
car1.print_info()
注意:
_init_() 方法,在创建一个对象时默认被调用,不需要手动调用。
_init_(self) 中的self参数不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
1.5.2 带参数的_init_()
#定义类
class Car():
# 定义初始化功能的函数
def __init__(self,width,height):
#添加实例属性
self.width=width
self.height=height
def print_info(self):
# 类⾥里面获取实例属性
print(f'car1汽车的宽度是{self.width}')
print(f'car1汽车的高度{self.height}')
# 创建对象
car1=Car(1700,1400)
car1.print_info()
car2=Car(1500,1300)
car2.print_info()
1.5.3 _str_()
当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__ 方法,那么就会打印从在这个方法中 return 的数据。
class Car():
# 定义初始化功能的函数
def __init__(self,width,height):
#添加实例属性
self.width=width
self.height=height
def __str__(self):
return '这是老司机开车手册'
def print_info(self):
# 类⾥里面获取实例属性
print(f'car1汽车的宽度是{self.width}')
print(f'car1汽车的高度{self.height}')
# 创建对象
car1=Car(1700,1400)
print(car1)#这是老司机开车手册
1.5.4 _del_()
当删除对象时,python解释器也会默认调用__del__() 方法。
class Car():
# 定义初始化功能的函数
def __init__(self,width,height):
#添加实例属性
self.width=width
self.height=height
def __str__(self):
return '这是老司机开车手册'
def __del__(self):
print(f'{self}对象已经被删除')
def print_info(self):
# 类⾥里面获取实例属性
print(f'car1汽车的宽度是{self.width}')
print(f'car1汽车的高度{self.height}')
# 创建对象
car1=Car(1700,1400)
del car1# <__main__.Washer object at 0x0000026118223278>对象已经被删除
本文地址:https://blog.csdn.net/qq_35793394/article/details/107200543
上一篇: 水煮蛋隔夜能吃吗,有什么办法可以保存它第二天吃不变质?
下一篇: 吃玉米减肥吗,这几类人千万不能吃