python(函数和类、文件)
一、函数的补充
1.函数的递归
函数的高级用法就是函数调用函数本身,从而实现函数的递归功能
def 函数名(参数):
代码块
函数名
2.匿名函数lambda
功能:当我们定义一些简单函数,功能比较简单,可以用匿名函数
格式:函数名 = lambda 参数:函数内代码
1.匿名函数也能作为函数的参数,比如sorted()函数
格式:sorted(iterable,key=None,reverse=False)
参数iterable:表示可迭代的数据对象,如字符串,列表或元组
参数key:表示比较函数,值可以为lambda语句
参数reverse:表示排序顺序,若值为False表示从小到大排序,值为True表示从大到小排序

abs()函数表示求内部的绝对值
二、类
1.创建类
格式:class 类的名称():
def __init__(self,参数1,参数2,...)
代码块1
def 方法名(参数1,参数2,...)
代码块2
...
注意:1.类的命名与变量命名规则一样,为了与函数名区分,类名称的首字母需要大写。
2.self是类中的共享空间,self在__init__的时候,准备好后期需要的数据

2.创建对象
格式:对象=类名(实参)
注意:类名中的实参会传递给类中的__init__()初始化方法
创建类的对象后,就可以通过对象名使用类中的方法:对象.方法名(参数)

3.类的属性的使用
在使用属性之前先创建一个具体的对象通过:对象.属性 的形式使用不需要加上括号
注意:有些属性不在初始化方法内无法直接的调用,需要调用属性存在的方法,才能获取属性

4.初始化其他方法
在类的定义中,__init__()初始化方法也可以调用类中定义的其他方法,调用过后可以获取方法内对应的属性

5.属性的修改
属性的值可以通过对象来进行修改,用新值覆盖旧值

6.获取类的文档说明
获取类的文档说明通过__doc__属性实现

三、类的继承
1.类的继承方式
在创建新类时,class后面的括号用于继承父类且不接收参数。
格式:class 子类名(父类名):
def __init__(self,子参数):
super.__init__(父参数)
代码块
def 方法1()...
注意:1.新类中子类名后面的括号中写入父类名,表明新类是继承哪个类的,父类的代码要写在子类的前面
2.在子类的初始化方法中,加入super().__init__(父参数),表明将父类的属性与方法与子类关联起来
3.子类可以使用子类和父类的所有属性和方法,父类不能使用子类的属性和方法
2.在子类中添加方法
子类中还可以添加新的方法,但在子类中新创建的方法无法在父类中使用,父类创建的方法可以在子类中使用
3.覆盖父类中的方法
当需要对父类中的方法进行修改,调整时,可以通过子类重新编写父类的方法。在执行子类的方法时会自动覆盖父类中相应的方法
四、导入文件中其他的类
1.导入文件
使用import导入c.py文件,后面想要使用c.py文件中的类通过 c.类名(参数)的形式导入

2.导入文件中的指定类
当文件有多个类而防止类太多导致名称冲突,可以导入指定类

3.导入文件中的全部类

4.给导入的类设置别名

5.类的文件模块化
openpyxl文件夹中存在一个__init__.py文件,当python在该文件夹下检测到__init__.py文件时,会默认将整个openpyxl文件夹下的所有文件都当作一个模块,即一个整体。用户可以使用import openpyxl导入整个库
五、操作文件
1.文件的介绍
一个文件由三个部分组成,分别是文件保存的路径,文件类型,文件内容
2.打开文件
在python中打开文件使用open()函数打开一个文件。
格式:open(file,mode=‘r’,buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)
注意:不能在使用代码操作文件时,还使用操作系统操作文件,会造成冲突
参数file:需要打开的文件路径,数据类型为字符串
参数mode:指明文件的打开模式,r表示只读,只允许对文件进行读取操作;w覆盖写模式,文件有内容会先清除文件中的内容再写入,如果没有该文件则新建一个文件;a追加写模式,再文件原有的内容上继续写入,如果没有该文件则新建一个文件
参数encoding:表示需要打开文件的编码方式,在文本模式有效。通常为‘cp936’编码方式,是GBK编码方式的一种
更多推荐
所有评论(0)