模块的四种形式

模块就是一系列功能的集合体,即一堆函数的集合体

内置模块

python解释器自带的模块,time/random

pip安装的模块

pip install jieba/pycharm安装

自定义模块

自定义代码

包(模块)

把一系列模块组织到一起的文件夹

import和from···import

  1. import

    1. 开辟内存空间,内存空间命名为模块名
    2. 把模块名.py种的所有代码读入名称空间,然后运行
    3. 通过模块名.方法名使用模块中的方法

    优点:永不冲突

    缺点:每次导入要多输入几个字符

  2. from import

    1. 开辟内存空间,内存空间命名为模块名
    2. 把模块名.py种的所有代码读入名称空间,然后运行
    3. 把功能读入执行文件中,因此可以直接使用

    优点:少输入几个字符

    缺点:容易发生冲突

    • 导入多个方法:
    from time import sleep,time  # 不推荐
    • 同时导入所有方法:
    from time import *  # 不要使用

循环导入

在两个文件中分别导入对方中的变量,会导致循环导入

# m1.py
from m2 import x
y = 10
print(x,y)
# m2.py
from m1 import y
x = 20
print(x,y)

原因:模块导入时,会在内存中试运行,试运行时由于变量再模块导入后面,导致无法找到x的变量,因此会陷入循环导入

解决办法1:

# m1.py
y = 10
from m2 import x
print(x,y)
# m2.py
x = 20
from m1 import y
print(x,y)

解决办法2:(函数)

def f1():
    from m2 import y
    print('m1:', x, y)
x = 10
def f2():
    from m1 import x
    print('m2:', x, y)
y = 20

模块的搜索路径

由于模块导入执行的时候会将模块的代码调用内存试运行,因此搜索顺序为内存》内置》自定义的顺序

## 环境变量

import sys
print(sys.path)  # 打印环境变量地址

sys.path.remove('环境变量地址')  

python文件的两种用途

执行文件(当前运行的文件)和模块文件

if __name__ == '__main__':
    代码

__name__是每个文件独有的

  1. 当该文件作为执行文件运行时,__name__等于__main__
  2. 当该文件作为模块文件时,__name__等于文件名

最新文章

  1. ubuntu 14.04 对exfat的支持
  2. BZOJ4657 : tower
  3. 转-利用Oracle审计功能来监测试环境的变化
  4. 如何完美打造Win8 Metro版IE10浏览器页面(转)
  5. [LinqPad妙用]-在Net MVC中反射调用LinqPad中的Dump函数
  6. Linux企业级项目实践之网络爬虫(24)——定制规则扩展为垂直爬虫
  7. git第三篇---建立一个project
  8. Jax-ws 开发webService ,并使用spring注入service类
  9. 玩玩kafka1 单机安装
  10. Numpy入门 - 数组聚合运算
  11. nopcommerce 4.1 core 学习 增加商城配置属性
  12. Confluence 6 Oracle 连接问题解决
  13. go语言中的数组
  14. 完完全全彻底删除VMware_Workstation
  15. JS进阶系列之原型、原型链
  16. 我所遇到的C++连接问题汇总
  17. 《C++ Primer Plus》学习笔记——C++程序创建到运行的整个过程
  18. 01-http简介-四层 七层 三次握手
  19. Leetcode 807. Max Increase to Keep City Skyline
  20. 技术分享:Dapr,让开发人员更轻松地构建微服务应用

热门文章

  1. 转载:alpha测试和beta测试的区别;黑盒测试和白盒测试的区别;
  2. 怎样用手机把视频变成GIF表情包?原来那么简单,网友:看完涨知识了
  3. 由"跨域"引出的一个终极思想(jsonp)
  4. SpringBoot 定时任务实现方式
  5. Python实现几种简单的排序算法
  6. sort,uniq,wc,tr
  7. 一个PHP文件搞定微信H5支付
  8. Python集训营45天—Day08 (文件操作)
  9. 【MySQL】 用户授权
  10. Cannot access a disposed object in ASP.NET Core