Python语法进阶篇 --- 类和对象
Python语法进阶篇 --- 类和对象
- 类和对象
- 面向过程和面向对象的基本概念
- 类
- 对象
- 构造函数__init__
- 析构函数__del__
🐹🐹🐹🐹🐹一只正在努力学习计算机技术的小仓鼠🐹🐹🐹🐹🐹
类和对象
面向过程和面向对象的基本概念
- 面向过程:先分析解决问题的步骤,再把步骤拆成一个个方法,通过执行方法解决问题。
- 面向对象:将编程当成一个对象,对外界来说,事物是直接使用的,不用去管内部的情况,而编程就是设置事物能做什么事情。
类
- 概念:对一系列具有相同属性和行为的事物的统称。类是一个抽象的概念,不是真实存在的事物。
- 类的三要素
- 类名:遵循大驼峰命名法。
- 属性:对象的特征描述。
- 方法:对象具有的功能(行为)。
- 创建类
class Washer:# 类属性height = 100
- 查看类属性
class Washer:# 类属性height = 100 # 类名.属性名 print(Washer.height)
- 新增类属性
class Washer:# 类属性height = 100 # 类名.属性名 = 值 Washer.width = 100 print(Washer.width)
对象
- 概念:对象是类创建出来的真实存在的事物,是类的具体实现。
注:在开发中,先有类,再有对象
- 创建对象:创建对象的过程也叫实例化对象,一个类可以实例化多个对象。
# 内存地址不一样,说明是不同的对象pwash = Washer()print(pwash)qwash = Washer()print(qwash)```
- 实例方法和实例属性
- 实例方法:实例方法由对对象调用,且至少有一个
self
参数,执行实例方法的时候,自动将调用该方法的对象赋值给self
class Washer:height = 800# 实例方法def washfunc(self):# 当对象调用实例方法时,python会自动将对象本身的引用(地址)作为参数,传递到实例方法的selfprint(self)print('洗衣服') # 实例化对象 wash = Washer() print(wash) # 对象调用类中的方法 wash.washfunc()
- 实例方法:实例方法由对对象调用,且至少有一个
- 实例属性
self.属性名
class Person:# 类属性name = 'bingbing'# 实例方法def introduce(self):print(self.name)# 实例属性print(self.age)print(self.gender) # 实例化对象 person = Person()person.age = 20 person.gender = 'male' # 根据对象名访问实例属性 print(person.age)
- 实例属性与类属性的区别
实例属性只能由对象名访问,不能由类名访问;类属性,对象和类都能访问。
构造函数__init__
- 作用:属性初始化或者赋值操作。
创建类实例化对象的时候会被自动调用
class Dog:# 构造函数def __init__(self, age, skin):self.age = ageself.skin = skinself.foot = 4print('这是__init__()函数')# 实例方法def appearence(self):print(f'this dog is {self.age} years old, and has {self.foot} feet')
spike = Dog(10,'black')
spike.appearence()
spikeson = Dog(3,'white')
spikeson.appearence()
析构函数__del__
- 作用:对象被垃圾回收的方法(释放内存),执行析构函数意味着对象不能继续引用。
删除对象时解释器会默认调用__del__()方法
class Person:def __init__(self):print('我是__init()__函数')def __del__(self):print('我销毁了')person = Person()
# del p删除对象语句执行时,内存会立即被回收,会调用对象本身的__del__()方法
del person
# 正常运行时不会调用__del__方法,代码执行结束后系统会自动调用__del__()
print('这是最后一行代码')