【python基础】日常知识点整理
阅读原文时间:2023年08月09日阅读:2

【三种方法调用】
  1. 类中的方法区分为普通方法(self),静态方法(@staticMenthod),类方法@classMenthod,隐式参数(cls)
    <1> 普通方法:第一个参数 self 代表实例对象本身,可以使用 self 直接引用定义的实例属性和普通方法;如果需要调用静态方法和类方法,通过「 类名.方法名() 」调用即可。

    <2> 静态方法:使用「 类名.静态变量 」引用静态变量,利用「 类名.方法名() 」调用其他静态方法和类方法;如果需要调用普通方法,需要先实例化一个对象,然后利用对象去调用普通方法。

    <3> 类方法:第一个参数 cls 代表类本身(等价),通过「 cls.静态变量 」或「 类名.静态变量 」引用静态变量,利用「 cls.方法名() 」或「 类名.方法名() 」去调用静态方法和类方法;如果需要调用普通方法,需要先实例化一个对象,然后利用对象去调用普通方法。

  用法建议:
    * 静态方法和类方法是针对类定义的,除了可以使用类名去调用,也可以使用实例对象去调用,但是不建议使用实例对象调用。
    * 一般来说, 如果方法内部涉及到实例对象属性的操作,建议用普通方法.
          如果方法内部没有操作实例属性的操作,仅仅包含一些工具性的操作,建议使用静态方法;
          如果需要对类属性,即静态变量进行限制性操作,则建议使用类方法。
  2. 类的继承 与 super():
    super().__init__(),就是继承父类的__init__()方法,同样可以使用super()去继承其他方法

【字符串前缀】
  Python 字符串前加f,r,u,b的含义
    f: 表示字符串内支持大括号内的python表达式,如:
      logger.info(f"Total time taken: {time.time() - start_time}")
    r: 去掉反斜杠的转义机制,如下面例子,表示单纯字符串而不表示换行
      logger.info(r"Test\n\n\n")
      logger.info(r"C:dir1\dir\2")
    u:一般出现在中文字符串前,防止出现乱码
    b: 表示这是一个bytes类型对象,在网络编程中,服务器和浏览器只认bytes类型数据,如:
      response = b'hello world'
【路径处理】
     os.path.abspath(__file__): 获取当前文件的绝对路径,包含当前文件名
     os.path.dirname(__file__) :去掉文件名,返回当前文件的上层目录
  示例:
    os.path.dirname(os.path.abspath(__file__))
    os.listdir(path): 返回一个列表,包含指定路径下所有的文件名以及文件夹名
    os.getcwd(): 获取当前路径的字符串
    os.path.join(path1, path2 …): 将多个字符串组成一个路径
    示例:

      path = os.path.join('/home' , 'user', 'documents', 'file.text')

    path输出:/home/user/documents/file.text
    说明:在Windows系统中路径分隔符是反斜杠\, 在Unix和Linux系统中路径分隔符为斜杠/,在使用os.path.join()拼接时会自动根据当前操作系统选择合适的分隔符来拼接。

【字典的排序】经过sorted排序后返回一个以(key,value)组成的列表,列表的每个元素是一个元组
    按key排序:
       lst = sorted(iter, key = lambda x:x[0], reverse=True)
    按value排序:
       lst = sorted(iter, key = lambda x:x[1], reverse=True)

【异常处理】
  1. 关键字raise:主动抛出指定的异常,触发后程序停止
   raise有三种用法:
    <1> raise: 单独使用,直接根据程序自身运行引发异常类型
    <2> raise exceptionName: 表示引发指定的异常类型
    <3> raise exceptionName(reason): 表示引发指定的异常类型,并给出异常原因提示
  示例:raise ValueError ('参数类型错误:', params)

  2. 异常捕获
  try:
    # code
  except Exception as e:
    # 捕获异常以后的处理,如打印print(e.args)