• 模块引入和包相关内容


    模块就是一个包含了python定义和声明的文件,文件名就是模块的名字加上.py后缀

    • import加载的模块一共分成四个通用类别

    1.使用python编写的py文件

    2.已被变异为共享库或者DLL或C或者C++的扩展

    3.包好一组模块的包

    4.使用c编写并连接到python解释器的内置模块

    • 导入模块过程:

    1.如果已经导入则不再导入

    2.如果未导入,则为导入的模块创立新的名称空间

    3.在新创建的名称空间中运行该模块在当前模块中引用的名字

    4.创建模块的名字.使用该名称作为该模块在当前模块中引用的名字

    • global表示把全局的内容引入到局部。但是这个局部指的是py文件。即global指向的是模块内部。并不会改变外部模块的内容
    • 如果在不同的模块中引入了同意模块。并且在某一个模块中改变了被引入模块中的全局变量。则其他模块看的值也跟着变。原因是python的模块只会引入一次,大家共享同一个名称空间
    • 一次可以引入多个模块
      import time, random, json, mokuai

      正确的导入模块的顺序:

    1.所有的模块导入都写在最上面,这是最基本的

    2.先引入内置模块

    3.在引入拓展模块

    4.最后引入自己定义的模块

    • 如果当前文件中出现了重名的变量时,会覆盖掉模块引入的那个变量
    • 我们自己创建的py文件的名字不要和系统内置的模块重名**

    是一种通过'.模块名'来组织python模块名称空间的方式,包内必须存在__init__.py文件。包的本质就是一个文件夹,提高程序的结构性和可维护性

    绝对导入,以最顶级包作为起始

    相对导入:用. (当前文件夹os.mkdir(f'./info_ftp/{username}'))或者.. (上一级文件夹)作为起始

    #绝对导⼊入 
    from glance.cmd import manage 
    manage.main() 
    #相对导⼊入 
    # 这种情形不不可以在versions中启动程序. 
    #  attempted relative import beyond top-level package
    from ..cmd import manage 
    manage.main() 

    包的注意事项:

    1.关于包相关的导入语句也分为import和from xxx import xxx两种,但无论使用哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时导带点的,点左边的都必须是一个包。否则报错。可以带一连串的点,比如a.b.c
    2.import导入文件时。产生名称空间中的名字来源于文件,即包下的__init__.py,导入包本质就是在导入该文件
    3.包A和包B下游同名模块也不会冲突,如A.a和B.a来自两个名称空间
  • 相关阅读:
    动态规划Dynamic Programming: Rod-Cutting Problem
    递归详解,全排列问题
    获取网站根目录Url
    oracle中操作表和权限
    mongo简单封装
    dapper的简单封装
    反射做字段更新日志
    nopcommerce +autofac +owin +webapi
    批处理命令执行程序
    MSMQ的简单使用
  • 原文地址:https://www.cnblogs.com/gracenana/p/10235563.html
Copyright © 2020-2023  润新知