• python-模块与包


    模块

    # 模块的定义:将一些复杂的需要重复使用的功能进行归类,分别放
    # 到同一个py文件中,需要调用的时候直接拿出来使用就可以了
    # import xiaomei
    # 一.导入模块时做的事
    # 1.先看看自己的内存里有没有,有的话就不干活了,没有在倒进来
    # 2,创建一个命名空间,在这个命名空间中执行代码
    # 3.创建了一个xiaomei这个名字,给命名空间中变量和xiaomei绑定在一起
    # 4.import方式导入模块中的内容和正在操作的文件中的内容不会有冲突
    # import sys
    # print(sys.modules)
    # 我们可以从sys.modules中找到当前已经加载的模块,sys.modules是一个字典
    # ,内部包含模块名与模块对象的映射,该字典决定了导入模块时是否需要重新导入
    # def drive():pass
    # xiaomei.drive() #执行模块里的函数
    # print(xiaomei.price)

    # 二.import ...as :给模块重命名,重命名之后之前的名字就失效了,新名字可
    # 以直接使用
    #1.import的名字太长起一个别名
    # 2当import的模块和我文件中的变量重名的时候
    #3当兼容多个模块的相同操作的时候
    # import xiaomei as xm #import的名字太长起一个别名
    # xm.drive()
    # import xiaomei as xm #当import的模块和我文件中的变量重名的时候
    # def xiaomei():
    # print(123)
    # xm.drive()
    # if 是mysql数据库: #当兼容多个模块的相同操作的时候
    # import mysql as db
    # elif 是oracle数据库:
    # import oracle as db
    # db.open
    # db.write

    # 三.import 多个模块
    # import os,re,time #python支持这种语法,但是不建议同时导入多个模块
    # 导入模块的规则:先导入内置的模块
    # 再导入扩展模块:requests beautifulsoup django selenium paramikl
    # 最后导入自定义的模块

    # from xiaomei import drive,price
    # from xiaomei import drive as d,price as p
    # drive()
    # from import 的用法会直接将导入的内容放在全局,但是drive中用到的变量和drive方法是一种绑定
    # 关系,如果有同名,就会发生覆盖
    # 测试三:导入的函数read1,被当前位置定义的read1覆盖掉了
    # #demo.py
    # from my_module import read1
    # def read1():
    # print('==========')
    # read1()
    # '''
    # 执行结果:
    # from the my_module.py
    # ==========
    # '''


    # 当要使用这个模块中的多个方法的时候使用import模块名
    # 当只是用模块中的一个或两个的时候使用from模块名import函数名
    # 不推荐使用form import*
    # import xiaomei
    # from xiaomei import *
    # from xiaomei import drive,price
    # drive()
    # print(price)

    # from xiaomei import *
    # *受到_all_的限制,如果不定义_all_就默认引入所有的
    # 如果定义了,那么列表中有什么就能引入什么,但是不会影响没有引入的变量的使用,只需要
    # from 模块名 import 变量名 就可以正常使用模块中的该变量
    # import xiaomei
    # print(drive)
    # print(price)
    # from xiaomei import price
    # print(price)

    # 模块在导入后是再次导入时是不会执行该模块内的代码的,如果该模块被修改了,
    # 是不会被识别到的,使用importlib模块重新加载一下就可以看到效果
    # import time,importlib
    # import xiaomei
    # xiaomei.drive()
    # time.sellp(10)
    # importlib.reload(xiaomei) #加载修改过后的模块内容
    # print('price:',xiaomei.price)

    # import xiaomei
    # import re
    # import sys
    # print(sys.modules)
    # print(sys.path)
    # 执行python解释器,已经在内存中加载了一些内置的模块了,导入模块的时候,如果模块不存在
    # 于sys.modules,才从sys.path给的路径中依次去查找
    # sys.path完全可以决定某个模块能不能被找到(除了已经在内存中加载的一些内置模块)
    # import xiaomei
    # 当一个py文件被当做一个模块导入的时候,会自动生成一个pyc文件,
    # pyc文件是这个代码编译之后的文件,节省了每一次导入代码之后还要编译的时间
    # import xiaomei
    # print(dir(xiaomei))
    # import builtins
    # print(dir(builtins))


















































  • 相关阅读:
    最不要勉强的,是感情.
    Nginx+phpfastcgi下flush 一下子全部输出问题
    php excel 读取日期问题
    JavaScript年月日和时间戳互转
    mysql 查找除id外其他重复的字段数据
    Thinkphp 下 MySQL group by 接count 获得条数方法
    MySQL性能管理及架构设计 --- 理论篇
    MySQL 导入.sql文件
    Apache ab 压力并发测试工具
    工作生活随笔
  • 原文地址:https://www.cnblogs.com/dwenwen/p/7874831.html
Copyright © 2020-2023  润新知