zoukankan      html  css  js  c++  java
  • 异常,模块和包

    1 异常处理

      1) 错误

        一般来说, 错误分为两种

        一种是语法错误, 这一类是不符合程序语言规范

        另一种是逻辑错误, 是在程序设计过程中忽略忽视或者错误逻辑导致的

      2) 常见的异常

      AttributeError 访问的对象没有该属性

      IOError 输入/输出异常

      ImportError 无法引入模块或包, 基本上是路径问题或名称错误

      IndentationError 语法错误一种, 代码没有正确对齐

      IndexError 下标越界

      KeyError 键不存在

      KeyboardInterrupt 在控制台中Ctrl+C中断

      NameError 名字错误

      SyntaxError 语法错误

      TypeError 类型不正确

      UnboundLocalError 试图访问一个还未被设置的局部变量

      ValueError 类型正确但是值不对

      3) 具体异常处理

        具体异常处理参见

    2 模块

      一个py文件就是一个模块

      导入模块产生的三件事情

        1) 创建一个以模块名称命名的名称空间, 并把模块中的内容放入该名称空间之中

        2) 执行一次该模块文件

        3) 这个名字会被作为变量, 在执行导入的这个文件中被使用

      寻找模块的关键因素

        1) 导入模块的时候, 会在sys.path的环境变量中, 自动添加上当前文件路径

        2) 导入的处理基点尤其是路径上, 始终是执行这个导入所在文件的路径

      寻找模块的顺序

        内存中加载完毕的模块 > 内置模块 > sys.path中包含的路径的模块

      import导入的用法

        1) 直接导入模块, 使用的时候用模块名来取得名称空间的内容

        2) import 模块名称 as 新名字, 这样可以给原模块名一个新名字

        3) import 模块, 模块2, 模块3... 多个导入

      from.. import的用法

      这个导入有两个特点

        1) 实际导入的是import后面的内容, 且不能使用 . 的形式

        2) from后面跟随的是层级关系, 可以说from.. import是带有一定的层级关系来得到导入的包的

      多个导入和命名

        在import后面同样使用逗号分隔

        命名同样可以使用as

      全部导入

      from .. import *

        会导入公开的变量内容, 下划线开头的私有变量不会被导入

        可以设定 __all__ = [变量列表] 来限定导入的内容 

      特殊变量__name__

        在执行本文件的时候 __name__ = '__main__'

        在被导入之后 __name__ = 模块的名字

      导入的时候, Python会生成一个 __pycache__ 目录, 这个目录是缓存, 用于加快导入的

        但是执行文件的时候是不会产生这个目录的

    3 包

      包就是一个文件夹, 该文件夹里有一个文件是 __init__.py 文件

      包的导入遵循导入原则

      绝对导入和相对导入

        1) 绝对导入

        以顶点的包为起点, 逐层获取导入内容

        2) 相对导入

        . 表示当前文件所在的路径

        .. 表示当前文件所在的路径的上一层路径

      相对导入只能使用from .. import 的方式

    人若有恒 无所不成
  • 相关阅读:
    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:
    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  • 原文地址:https://www.cnblogs.com/weihuchao/p/6799229.html
Copyright © 2011-2022 走看看