• Python Day 18 常用模块(模块和包)


    Python Day 18 常用模块 (模块和包)

    模块

    #什么是模块?
    #如何使用?
    #import py文件 就是执行这个py文件
    #如何在当前文件中执行导入模块中的函数或变量
    # 导入的模块名.函数名
    # 导入的模块名.变量
    #模块是否可以被多次导入吗?
    #不可以,只有一次生效
    # 发生了什么?
    #import mymodules
    #检测模块名字是否存在,如果有就不继续导入


    #print(sys.modules.get('mymodules'))
    #如果没有,创建一个属于这个模块的命名空间。
    #执行这个模块中的代码,将模块中的名字存储在这个模块的命名空间中

    import sys
    print(sys.modules.get('mytemp'))
    import mytemp
    import mytemp
    import mytemp
    print(sys.modules)
    print(sys.modules.get('mytemp'))

    #为什么pycharm报错的代码还能执行
    #对于自定义模块,pycharm只认项目根目录中的,会报错
    #如何处理?
    # 可以设置当前目录为项目根目录。
    #python解释器会从当前目录,和lib根目录进行查找
    #pycharm会将项目目录加入环境变量中
    #print(sys.path) #查看环境变量
    
    import sys
    print(sys.path)
    path = 'D:LearnPython全栈开发Day17'
    sys.path.append(path)
    #修改环境变量列表,控制哪些路径下的模块可以被顺利导入
    print(sys.path)


    #项目开发规范#

      导入模块的方法

      

      import xx

      import xx as 别名

      from xxx import xxx as xxxx

      from xxx import xxx as xx,xxxxxx as xx

      import time,os,sys #可以一行导入多个,不推荐使用

      from xxx import *

         此方法可以直接用,但是发送命名冲突,几率低,主要会降低可读性引起歧义
      对应导入文件中设置 __ALL__ = ['变量','函数名'],此方法只约束*,可以直接导入其他的


    要执行整个要导入的文件,导入了全局


    会不会和全局的变量发生冲突?
      from import导入的变量会发生冲突
    如果导入的是price ,my_moudel是否能用?
      不能用
    func1是否还能用?
      不能用
    导入调用price 的func1 price能否直接用?
      func1可以调用price,不能直接用。


    导入模块的顺序
      一次性将需要的都写入开头
      先写内置模块,扩展模块,自定义模块

    模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

    import os
    import time
    import django
    import mymoudles

    模块直接不能循环引用,一般会发生找不到模块报错



    编译文件pyc文件问题

    import time
    #在导入一个模块的时候会产生一个模块的字节码pyc文件
    #如果首次导入模块,会自动生成,会认为是一个通用的功能,
    #将通用的功能进行编译,节省启动时间
    #pyc文件会加快程序的启动效率,不会影响执行效率。
    #如果py文件更改了,pyc文件会感知吗?
    #可以,会重新编译
  • 相关阅读:
    基础数据补充
    购物车
    小数据池、深浅拷贝和集合
    列表、元组和range
    小数据池、深浅拷贝和集合练习
    字典
    字符串练习
    列表练习
    练习
    字典练习
  • 原文地址:https://www.cnblogs.com/eailoo/p/9078708.html
Copyright © 2020-2023  润新知