• Python合集之模块(二)


    1.使用from...import 语句导入模块

    在使用import语句导入模块时,每执行一条import语句都会创建一个新的命名空间,并且该命名空间中执行与.py文件相关的所有语句。在执行时,需要具体的变量、函数和类名前加上模块名. 前缀 如果不行在每次导入模块时都创建一个新的命名空间,而是将具体的定义导入到当前的命名空间中,这是可以使用from...import语句。使用from...import语句导入模块后,不需要在添加前缀,直接通过具体放入变量、函数和类名等访问即可。

    注:命名空间可以理解为记录对象名字和对象之间对应关系的空间。目前Python的命名空间大部分都是通过字典来实现,其中,key是标识符,value是具体的对象。

    语句格式如下:

    from modelname import member
    参数说明:
    modelname:模块名称,区分大小写字母,需要和定义模块时设置的模块名称的大小写保持一致
    member:用于指定要倒入的变量、函数或者类等。可以同时导入多个定义,各个定义之间使用逗号分隔,如果想导入全部定义,使用通配符 * 代替。

    注:在导入模块时,如果使用通配符,倒入全部定义后,想查看具体导入了那些定义,可以使用显示 dir()函数的值来查看。

    例如:

    from bmi import fun_bmi
    from bmi import fun_bmi,fun_bmi_upgrade
    from bmi import *

    注:在使用from...import语句导入模块中的定义时,需要保证所导入的内容在当前的命名空间中是唯一的,否则将出现冲突,后导入的同名变量,函数或者类会覆盖先导入的,这时就需要使用import 语句进行导入。

    2.模块搜索目录

    当使用import语句导入模块时,默认情况下,会按照一下顺序进行查找。

    1.在当前目录下查找。

    2.到PythonPath下的每个目录中查找

    3.到Python的默认安装目录下查找。

    以上各个目录的具体位置保存在标准模块sys的sys.path变量中,可以通过一下代码输出具体的目录:

    import sys
    print(sys.path)

    注:使用import语句导入模块时,模块名是区分字母大小写的。

    如果要导入的模块不在上面的目录中,那么在导入模块时,会提示相关的异常信息,这时我们可以通过3种方式添加指定的目录到sys.path中。

    2.1 临时添加

    临时添加即在模块的Python文件中添加。例如:需要将“e:/program/python/code/demo”目录添加到sys.path中,可以使用下面的代码:

    import sys
    sys.path.append("e:/program/python/code/demo")

    注:通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭及失效。

    2.2 增加.path文件

    在Python安装目录下的lib/site-packages子目录中,创建一个扩展名为 .pth的文件,文件名任意。这里创建一个 mrpath.pth 文件,在该文件中添加要导入模块所在的目录。

    例如:将模块目录 “e:/program/python/code/demo” 添加到 mrpath.pth文件,添加后的代码如下:

    #.pth文件是创建的路径文件
    e:/program/python/code/demo

    注:创建 .pth文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。 通过该方法添加的目录只再当前版本的Python中有效。

    2.3  在PYTHONPATH换将变量中添加

    打开 环境变量 对话框,如果没有 PYTHONPATH系统环境变量,则需要先创建一个,否则直接选中PYTHONPATH变量,在点击编辑 按钮,并且在弹出对话框的 变量值 文本框中 添加新的模块目录,目录之前使用逗号分隔。

    注:在环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。通过该方法添加的目录可以在不同版本的Python中共享。

    花絮:

    本期的Python 模块就分享到这里,下期我们将继续分享Python模块的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    方法指针或非指针类型接收器
    error接口
    17、想要回到项目上一版本,或者指定版本时,如何进行操作?
    08、想要找到所有操作记录时,如何操作
    16、不再追踪时,如何实现撤销追踪操作
    1月19日a
    1月18日
    1月20日
    1月25
    1月17日
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14642153.html
Copyright © 2020-2023  润新知