• day17 包的使用 logging模块的基本用法


    1.什么是包

    包是模块的一种形式,包就是一个含有__init__.py文件的文件夹

    包是模块的一种形式,即包是用来被导入的,但包的本质就是一个文件夹(文件夹的作用就是用来存放文件的,包内所有的文件都是被导入使用的)

    导包其实就是导__init__

    核心搞清楚谁是执行文件,谁是被导入文件,确认执行文件下的环境变量。

    但凡要导一个包,实质就是在导__init__下的包

    导入方式:

    1、绝对导入:相对与执行文件所在的文件夹(每次从包的根目录开始找,称之为绝对导入)

    2、相对导入:相对于当前被导入的文件(只能用于模块直接的互相导入)

    日志模块 logging

     四种角色

    logger  负责产生日志(可以设置日志级别)

    filter 筛选日志

    handler 接受logger对象传来的日志,控制输出到不同的位置(可以设置日志级别)

    formatter:控制handler对象输入日志的格式

    debug 10

    info 20

    warning 30

    error 40

    critical 50

    =======================================================================

    2.为什么要有包

    3.如何用包

      导入包就是在导包下的___init__.py

      import...

      from...import...

      注意的问题:

      1、包内所有的文件都是被导入使用的,而不是被直接运行的

      2、包内部模块之间的导入可以使用绝对导入(以包的根目录为基准)与相对导入(以当前被导入的模块所在的目录为基准)

        推荐使用相对导入

      3、当文件是执行文件时,无法在该文件内用相对导入的语法

        只有在文件时被当作模块导入时,该文件内才能使用相对导入的语法

      4、凡是在导入时带点的,点的左边都必须是一个包-

    import aaa

    首次导入的模块发生三件事
    1、创建一个包的名称空间
    2、执行py文件,将执行过程中产生的名字存放于名称空间中  (即包名称空间中产生的名字都是来自于__init__.py)#__init__导包的执行文件
    3、在当前执行文件中拿到一个名字aaa.aaa是指向包的名称空间的(aaa其实指的是__init__.py)

    #导包就是导__init__

    #一定要搞明白谁是执行文件,谁是被导入的文件    包下面有py文件但是下面所有的文件都不是右键运行的

  • 相关阅读:
    Project Euler Problem 11: Largest product in a grid
    Project Euler Problem 10: Summation of primes
    Project Euler Problem 10: Summation of primes
    Project Euler Problem 9: Special Pythagorean triplet
    Project Euler Problem 9: Special Pythagorean triplet
    Project Euler Problem 8: Largest product in a series
    Project Euler Problem 8: Largest product in a series
    Project Euler Problem 7: 10001st prime
    Project Euler Problem 7: 10001st prime
    Project Euler Problem 48: Self powers
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9180847.html
Copyright © 2020-2023  润新知