天天看点

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(输出内容)

转载于:https://blog.51cto.com/3945465/2385208

继续阅读