面向对象基础笔记
1、大驼峰命名法:即命名时首字母大写
2、利用dir()函数查看python中内置的方法
3、类的定义:
class 类名:
def 方法1(self,参数列表):
pass
def 方法2 (self,参数列表):
pass
创建对象:对象变量名=类名()
4、%x:打印出十六进制、%d:打印出十进制
5、可以通过self.访问对象属性,也可以通过self.调用其他的对象方法
6、_ _init_ _方法是专门用来定义一个类具有哪些属性的方法,称为初始化方法
7、_ _del_ _方法:如果希望对象被销毁前,再做一件事情
8、_ _str_ _方法:如果希望使用python输出对象变量时,能够打印自定义内容时,就可以使用这个内置方法了
9、在pycharm中如果想定义两个以上的类,那么类与类之间应该保留两个空行
10、定义类的方法,可以根据要求使用名词提炼法分类
11、身份运算符:“is"、"is not" 用与比较两个对象内存地址是否一致
12、私有属性:在属性前加”_ _"即可
例:class womm:
def _ _init_ _(self):
self.__name="hl"
注明:私有属性在外界不能直接被访问,所有属性可以在对象方法内部使用。如果希望在外界不能被访问,也可以将方法变为私有方法,
和私有属性一样只需在方法名前加“_ _"即可。
例:def _ _name(self):
这时外界不能直接访问此方法。
在python中没有真正意义的私有,只有为私有属性和为私有方法
因此可以通过print(_women_ _name)、_ _women_ _name()来在外界访问
13、继承:子类拥有父类所有方法和属性,子类中应该根据职责,封装子类特有的属性和方法
语法:class 类名(父类名):
14、使用super().调用原本在父类中封装的方法
15、子类不能在自己的方法内部,直接访问父类的私有属性和私有方法,但可以通过父类的共有方法间接访问。
16、多继承:class 类名(父类1,父类2...)
17、新式类:以object为基类的类,推荐使用
经典类(旧式类):不以object为基类的类,不推荐使用
18、面向对象的三大特征:封装、继承、多态
19、定义类方法:使用@classmethod来表识
例:@classmethod
def 类名(cls):
20、静态方法:使用修饰器@staticmethod
例:@staticmethod
def 类名():
21、如果一个方法既不需要 访问实例方法,也不需要访问类属性这时我们就可以将方法定义为静态方法,静态方法不需要传入参数
22、类方法和静态方法可以直接通过类名.方法名()的方式调用。而实例方法首先得先创建一个实例然后再通过实例调用方法
23、_ _new_ _方法:内置静态方法,为对象在内存分配空间,将分配的空间返回给python内部
24、简单的异常捕获:
try:
未能确定正常执行的代码
except:
错误处理的代码
25、捕获错误类型
try:
未能确定能正常执行的代码
except 错误类型:
错误处理代码
26、捕获未知错误:
except Exception as result:
print("未知错误%s"%result)
27、异常捕获的完整语法:
try:
未能确定正常执行的代码
except 错误类型:
能够预知的错误处理
except 错误类型:
能够预知错误类型的处理
except Exception as result:
print("未知错误%s"%result)
else:
没有异常才会执行的代码
finaliy:
无论是否异常都会执行的代码
28、异常具有传递性,可以利用异常传递性,只需在主程序中做异常处理,而在写函数时可以专心编写
29、主动抛出异常的方法:由于python中提供了一个Exception的类,因此可以:创建一个Exception对象,然后使用raise关键字抛出异常即可
30、如果模块的名字太长,可以使用as指定模块名称,以便在代码中使用
例:import 模块名 as 模块别名
注:模块别名要使用大驼峰命名法
31、如果希望从某个模块中导入部分工具,就可以使用:from 模块名 import 工具名
导入之后,不需要通过模块名,可直接使用模块提供的工具
注:如果两个模块存在同名函数,那么导入模块的函数,会覆盖掉先导入的函数
32、使用 from 模块名 import * 可以导入模块的全部工具,导入之后可以直接使用(不推荐使用,因为如果两个函数之间存在同名函数时,导入会存在覆盖问题)
33、在导入模块时python首先会在工作目录中寻找,如果找不到才会去找系统模块,如果都找不到就会抛出错误,因此在对模块命名时不要和系统模块同名
34、在导入模块时,会首先将导入模块的未缩进的代码先跑一遍,可以使用_ _name_ _=="_ _main_ _"解决。
例如被导入模块:
def ... :
...
if _ _name_ _=="_ _main_ _"
print("。。。")
这样就会在调用该模块时print语句不会在调用模块中执行
技巧:可以在Pycharm中输入main,然后回车,if _ _name_ _=="_ _main_ _"就会自动填入
35、建立包:由于包下文件必须有一个_ _init_ _的文件,因此可以新建——>目录——>为包命名——>在包下新建一个名为_ _init_ _的.py文件
法二:在新建中选中python package.为包命名即可,这个方法会自动建立一个_ _init_ _文件
36、操作文件的套路:(1)打开文件 (2)读写文件 (3)关闭文件
37、在python中要操作文件需记住一个函数三个方法:
(1)open 打开文件
(2)read 将文件内容读取到内存中
(3)write 将指定内容写入文件
(4)close 关闭文件
38、open("文件路径","访问方式”)
当不指定访问方式时会默认为只读方式
访问方式:
r:只读方式,这是默认方式
w:以只写方式打开文件,如果文件存在会被覆盖,如果文件不存在会创建文件
a:以追加的方式打开文件。如果文件存在,文件指针将会放在文件结尾,如果文件不存在,创建文件写入
r+、w+、a+都是以读写的方式打开文件。他们之后的功能和没有+号时对应功能一样
39、readline()方法可以一次读取一行内容,执行后,会把文件指针移动到下一行,准备再次读取
40、read()方法默认会把文件所有内容一次性读取到内存,使用此方法,如果文件太大的话,对内存的占用会非常严重
41、while True:
if not text:
break
语句的意思就是如果text中没有内容就会退出循环
42、文件/目录管理常用操作:想要实现管理操作首先应该导入os模块
(1)文件操作:
rename:重命名文件 、remove 删除文件
(2)对目录操作:
listdir 想要看的目录列表、 makdir 创建目录、 rmdir删除目录、 getcwd获取当前目录、pathdir判断是否为文件
43、eval 函数:将字符串当成有效表达式来求值并返回计算结果
例:
in[1]:eval("1+3")
out[1]:3
eval函数虽然很强大,但是在开发时千万不要使用,如果使用可能会使电脑陷入不稳定状态
本文来自博客园,作者:hl爱编程,转载请注明原文链接:https://www.cnblogs.com/hlprogrammer/p/12825180.html

浙公网安备 33010602011771号