Python教程_600集Python从入门到精通教程(懂中文就能学会)
《零基础入门学习Python》(小甲鱼) P1-53
面向对象:封装、继承、多态
先有一个类,然后创建多个对象。
封装
类的三要素:类名(大驼峰)、属性、方法。
dir()
查看所有属性和方法。
class 类名: #简单类,只含方法
def 方法(self, 参数列表):
对象变量 = 类名() #创建对象
创建对象自动调用初始化方法,初始化对象,定义实例属性。
内置方法:
__init__
self.属性 #定义属性
__del__ #自动销毁
__str__
一个对象的属性可以是另一个类创建的对象。
定义属性时,不知道如何设置初始值,可设为None
。
私有属性、私有方法:
__属性
__方法():
内部使用,外部不能。但python是伪私有。
继承
子类class 子类(父类):
拥有父类class 父类:
的所有属性和方法。
子类不能访问/调用父类的私有属性/方法。父类内部可以。
子类通过调用父类公共方法可以间接访问/调用父类的私有属性/方法。
方法重写
在子类中定义同名的方法,调用的将是重写方法。
方法扩展
重写、super().方法
、子类特有代码
多继承
class 子类(父类1, 父类2, ……)
有多个父类同名方法,按照从左到右的顺序。__mro__
查看顺序
多态
在子类中继承和重写父类方法,使不同的子类对象调用相同的父类方法,但产生不同的结果。
类方法
类是特殊的对象,类对象只有一个,可以创建多个实例对象。
@classmethod
def 类方法(cls):
代码
静态方法
不访问属性,也不调用方法。
@staticmethod
def 静态方法():
代码
__new__
object基类提供的内置静态方法:在内存中为对象分配空间;返回对象的引用。
异常
try:
尝试执行的代码块
except 错误类型1:
执行代码
except (错误类型2, 错误类型3):
执行代码
except Exception as result:
执行代码
else:
没有异常的代码
finally:
无论是否异常的代码
模块
import 模块1
import 模块2
import 模块 as 别名(大驼峰)
from 模块 import * #导入所有,可直接使用工具
from 模块 import 工具
所有python文件都是模块,所有没有缩进的代码都会被执行。
导入模块、定义变量、类、函数等
def main():
代码
if __name__ == "__main__":
main()
只在测试时被执行,导入时不执行。
包:多个模块和__init__.py
(从当前目录导入的模块列表)。
文件
file = open ("XXX")
r
只读 w
只写(覆盖,创建) a
追加(创建)
file.read
file.readline
本质是移动指针
file.seek
修改指针
file.write
file.writelines
file.close
with open() as XX
不用考虑close
OS模块
os.rename remove listdir mkdir rmdir getcwd chdir pathisdir
等
os.path.basename dirname
等
pickle模块
序列化 反序列化
一般用来存放数据
dump
将数据导入文件中
load
将文件读出