• Python基础_模块操作


    模块

    """
    
    退出 Python 解释器后,再次进入时,之前在 Python 解释器中定义的函数和变量就丢失了。
    因此,编写较长程序时,建议用文本编辑器代替解释器,执行文件中的输入内容,这就是编写脚本。
    随着程序越来越长,为了方便维护,最好把脚本拆分成多个文件。
    编写脚本还一个好处,不同程序调用同一个函数时,不用每次把函数复制到各个程序。
    
    为实现这些需求,Python 把各种定义存入一个文件,在脚本或解释器的交互式实例中使用。
    这个文件就是模块;模块中的定义可以导入到其他模块或主模块(
    在顶层和计算器模式下,执行脚本中可访问的变量集)
    
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    模块(module)可以是下述实体:

    Python文件(.py)
    Unix与Linux的共享对象,其后缀为.so
    Windows的DLL,后缀为.pyd
    目录,并应包含一个__init__.py文件
    
    • 1
    • 2
    • 3
    • 4

    私有属性

    """
    每个模块有自己独立的符号表,在模块内部的函数当作全局符号表来使用。
    模块内部__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,如下列。类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,即它们应视作模块私有的名字。
    
    __name__属性,其值为模块名 .;当其值是'__main__'时,表明该模块自身在运行,否则是被引入。
    __file__: 模块完整⽂文件名。
    __dict__: 模块 globals 名字空间。
    __doc__:模块定义的文档注释
    内置函数 dir() 以字符串列表的形式返回指定模块内定义的所有名称。
    
    
    每个 Python 类都拥有一个内置的类属性 __module__,它定义了这个类的模块的名字
    
    from math import cos
    cos.__module__
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    卸载一个模块:

    del sys.modules["moduleName"]
    可⽤用 imp.find_module() 获取模块的具体⽂文件信息:
    imp.find_module("numpy")
    
    • 1
    • 2
    • 3

    包(package)

    """
    包,是多个模块的组织体系。目录只有包含一个叫做 __init__.py 的文件(哪怕是空文件)才会被认作是一个包。否则,Python就把这个目录当成普通目录。
    __init__.py本身就是一个模块,而它的模块名就是包名。
    Python3中的包,__init__.py文件并不是必须的。__init__.py文件在包或内部模块导入时自动执行,且仅执行一次。
    可以有多级目录,组成多级层次的包结构。
    
    如果包定义文件 __init__.py 存在一个叫做 __all__ 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。
    如果 __all__ 没有定义,使用 from 包.子包 import * 这种语法的时候,不会导入包里的任何子模块,只是把包和它里面定义的所有内容导入进来。
    包内部的一个模块,可以如下引用这个包的其它模块:
    from . import another_module 
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    导入包

    """
    '不是导入模块'
    import six 
    from Tkinter import Tk
    import numpy as np 
    import pandas as pd 
    
    Python会在两个地方寻找模块或包:sys.path、
    运行文件所在的目录。
    python3采用绝对导入,即嵌套的import是根据最外层的运行文件的所在目录来导入。
    
    相对导入的办法:
    如果运行文件使用了相对导入,就必须进入package_name所在目录
    
    一般相对导入自己编写的包比较多,其他导入使用从第三方包导入,不需要相对路径
    
    import
    一条 import 语句可以同时导入多个模块,以逗号分隔
    import 将整个模块的全局符号表导入到当前模块的符号表中,可以使用模块中所有全局变量,类和函数
    import 导入的模块,对其中的变量和函数访问时要加上模块名
    导入的模块中相同函数名和变量名不会冲突,即函数,类全局变量等信息不相同
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    注意:

    """
    包的名称最好是唯一的,尽量不与内置函数相同,包的名称也浅显易懂
    """
    
    • 1
    • 2
    • 3
  • 相关阅读:
    消灭指标二义性!提效30%的指标管理如何炼成?
    手工挖XSS漏洞
    Spring 九大事务失效场景分析
    小程序毕设作品之微信二手交易小程序毕业设计成品(3)后台功能
    《python程序语言设计》2018版第5章第55题利用turtle黑白棋盘。可读性还是最重要的。
    C++QT实现TCP通信
    基于Web的商城后台管理系统的设计与实现
    Vue组件------列表组件设计
    科技云报道:发布分布式云战略,中国电子云吹响冲锋号角
    c高级day2 linux指令的补充和shell脚本
  • 原文地址:https://blog.csdn.net/wuhaotongxue/article/details/126247770