python封装,继承,多态及内置函数笔记

子类继承父类时,所有方法都会被继承,包括init初始化方法,init

如果有参数,子类实例化时,也需要传参,子类不需要父类方法时,可

重写
父类名.init(self,参数) 调用父类初始化方法
super() 当前类的父类
类名.bases 获取当前类的父类
多重继承时,当多个父类中出现相同的方法名,那么类名(父类,父类

)哪个父类在前,则用哪个父类中的方法
封装:确保对象中的数据安全
继承:保证了对象的可扩展性
多态:保证了程序的灵活性
直接在类中定义的类属性是类属性,类属性可以通过类或类的实例访


类属性只能通过类来修改,无法通过实例对象修改,实例对象会添加新

的属性,覆盖掉以前的旧属性
通过self和实例对象添加的属性,称为实例属性,实例属性不能通过

类修改和访问
实例方法:
在类中定义,以self为第一个参数的方法都是实例方法
实例方法,可以通过实例对象和类调用,通过类调用时,不

会传递self,需要手动传递selfbr/>类方法:
在类中定义,并且被@classmethod修饰的方法
类方法第一个参数是cls,也会被自动传递,代表当前类
br/>类方法也可以通过类和实例对象调用
静态方法:
在类中定义,并且被@staticmethod修饰的方法
静态方法可以通过类和实例对象调用
静态方法一般都是一些工具方法,和当前类无关
del 魔法方法,会在垃圾回收前调用
del 变量 删除的是变量,不是对象
特殊方法(以双下划线开始结尾):
str(self) print输出对象时,输出的是str方法的

返回值
repr(self) 这个方法会在对当前对象使用repr()函

数时调用
它的作用是指定对象在'交互模式(shell编辑器)'中直接输

出的效果
lt(self,other) 小于
le(self,other) 小于等于
eq(self,other) 等于
ne(self,other) 不等于
gt(self,other) 大于
ge(self,other) 大于等于
以上方法会在比较的时候调用,返回值将会作为比较的结果
len() 获取对象的长度
bool(self) 判断对象是否为空,不为空返回True
模块化:
1.方便开发
2.方便维护
3.模块可复用
引入模块:
import 模块名
import 模块名 as 别名
模块实例只有一个,同个模块,引用多次也只能有一个
name属性 可以获取模块名,值为main的模块

是主模块,主模块是直接通过python执行的模块
实例化其他模块中的类,模块名.对象名()
from 模块名 import 变量或方法名 只引入模块中部分功


from 模块名 import * 引入模块所有内容
from 模块名 import 方法名 as 别名 避免其他模

块与当前模块方法覆盖,起别名
其他模块中,添加了_的变量,通过from 模块名 import *

引入时,这种变量不会被引入

if name == 'main': 检查当前模块是否为主模块
模块是一个py文件,而包也是模块,也是文件夹,可以用import导入

,当一个模块需要被分解为多个模块或模块中代码过多时,就需要包

(package),包中必须要有一个init.py这个文件,这个文件中可

以包含有包中的主要内容
import 包名 导入包
from 文件夹 import 包名 导入包中的模块
pycache 是模块的缓存文件
python代码在执行前,需要被解析器转换为机器码,然后再

执行,所以我们在使用模块(包)时,也需要将模块的代码转换为机器

码然后交给计算机执行,为了提高程序运行的性能,python会在编译

过一次之后,将代码保存到一个缓存文件中,这样下次加载这个模块

时(包)时,就可以不再重新编译而是直接加载缓存编译好的代码即可
sys模块:提供了一些变量和函数,可以获取到python解析器的信息或

者操作python解析器
sys内置模块:
sys.argv 获取执行代码时,命令行中所包含的参


sys.modules 获取当前程序中引入的所有模块
sys.path 程序调用模块的搜索路径
sys.platform 程序运行平台
sys.exit(字符串) 退出程序
os(操作系统)内置模块:
os.environ 这个属性可以获取到系统的环境变量
os.environ['path'] 获取path环境变量
os.system('cmd命令') 执行cmd命令

pprint模块提供了一个pprint()方法,可以用来对打印的数据做简单

的格式化,调用:pprint.pprint(输出内容)

猜你喜欢

转载自blog.51cto.com/3945465/2385208