面向对象基础笔记

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函数虽然很强大,但是在开发时千万不要使用,如果使用可能会使电脑陷入不稳定状态

 

  

posted @ 2020-05-04 15:58  hl爱编程  阅读(165)  评论(0)    收藏  举报