zoukankan      html  css  js  c++  java
  • 模块引入和包相关内容

    模块就是一个包含了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来自两个名称空间
  • 相关阅读:
    URAL——DFS找规律——Nudnik Photographer
    URAL1353——DP——Milliard Vasya's Function
    URAL1203——DPor贪心——Scientific Conference
    递推DP HDOJ 5389 Zero Escape
    区间DP UVA 1351 String Compression
    树形DP UVA 1292 Strategic game
    Manacher HDOJ 5371 Hotaru's problem
    同余模定理 HDOJ 5373 The shortest problem
    递推DP HDOJ 5375 Gray code
    最大子序列和 HDOJ 1003 Max Sum
  • 原文地址:https://www.cnblogs.com/gracenana/p/10235563.html
Copyright © 2011-2022 走看看