zoukankan      html  css  js  c++  java
  • Python__模块

    import语句

      什么是模块?

        一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,但其实import加载的模块分为四个通用类别。

        1.使用python编写的代码(.py文件)

        2.已被编译为共享库或DLL的C或C++拓展

        3.包好一组模块的包

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

    包:

      包含init.py的文件夹,包和模块是被导入使用的

    导入模块干了哪些事?

      1.执行源文件

      2.以源文件为基础产生一个全局名称空间

      3.在当前位置拿到一个模块名指向2创建的名称空间

    1 sql_type = input('sql_type')
    2 if sql_type == 'mysql':
    3     import mysql as sql
    4 elif sql_type == 'oracle':
    5     import oracle as sql

    可以用as更改源文件的文件名,方便使用。

     from....import语句

    和imprt导入模块的三种功能相同

    优点:使用源文件内的名字时无需加前缀,使用方便

    缺点:容易与当前文件的名称空间内的名字混淆

    from spam import *

    表示的是到如spam文件中的所有名称空间

    如果在源文件内的名称空间前边加上一个横杆,此时from spam import * 表示的除了加横杠外所有的名称空间。

    __all__=['money','x']表示读的只有__all__中的名称空间

    import spam

    import spam

    有多个import时只执行一遍,表示已经读入到了内存中,之后引用已经存在的。

    import sys

    print(sys.modules)

    查看内存中已经存在的模块,此时打印字典,存放的是已经加载到内存中的模块。

    模块的搜索路径

    import timr

    timr.sleep(10)

    import time

    print(spam.money)

    此时修改的是当前py文件中的内容。

    python文件:修改完文件之后需要重新加载。

    import importlib

    importlib.reload()#可以重新加载(用不到生产环境,只能在测试环境中使用),但是只能重新加载当前使用的文件。

    import sys

    print('time' in sys.modules)

    import time

    print('time' in sys.modules)

    在内置中的必须重新加载才能使用。

    内置的加载到内存中,下次到内存中调用。

    内存--->内置--->硬盘

    注意:自定义的模块名一定不要与python中自带的模块名重名。

    import sys

    print(sys.path)#表示的是执行文件的当前路径

    内存中--->内置模块--->sys.path

    当前路径没有,加到环境变量中。

    import sys

    sys.path.append(filepath)

  • 相关阅读:
    新东西
    Xcode6新特性
    下载模拟器
    iOS定位和地图
    iOS,作死集锦
    ThreadLocal源码解析
    JSON Web令牌(JWT)介绍与使用
    docker已运行容器里的时区修改
    Docker图形界面管理
    ZooKeeper开机启动的俩种方式
  • 原文地址:https://www.cnblogs.com/wangmengzhu/p/7265877.html
Copyright © 2011-2022 走看看