怎么一下子就来学了模块?

其实学了判断、循环、函数等知识就可以开始下水写程序了,不用在意其他的细节,等你用到的时候再回过头去看,此所谓囫囵吞枣学习法。

为啥学模块?

有点用的、或者有点规模的程序都是要引入模块的。

一个小例子

你可以把一个模块(以文件的形式组织的)看成一个大的对象,里面有个中属性,以变量的方式使用。

例子:

b.py

def spam(text):
print(text, 'spam') a = 'tuhooo'

a.py

import b
b.spam('gumby') print(b.a)

就是这么简单啊。

同时如果有需要b.py也可以导入c.py,这样就形成了一个导入链:a--->b--->c

Python本身也提供了大概200个模块。

import如何工作

程序在一次导入文件的时候,会有以下动作:

1. 找到模块文件

2. 编译成位码(需要时)

3. 执行模块的代码来创建其所以定义的对象,导入模块的时候会把其中的语句先运行一遍,不行你print一个试试

这个只会在第一次导入的时候执行,如果导入了相同的模块,是不会重复执行的。

Python内部利用了sys.modules的表来记录已经导入的模块,并在第一次导入的时候会检查该表。

模块的搜索路径

1. 程序的主目录

2. PYTHONPATH目录(如果已经进行了设置)

3. 标准链接库目录

4. 任何.pth文件的内容,如果存在的话

最后这四个组合起来就是sys.path

import sys
print(sys.path)

最新文章

  1. ASP.NET MVC之文件上传【二】(九)
  2. GridView导出Excel(中文乱码)
  3. C# Label显示多行文本及换行(WinForm/WebForm)
  4. 对C++虚函数、虚函数表的简单理解
  5. 没人告诉你关于z-index的一些事
  6. Window bat expdp 定时任务逻辑备份 定时删除N天前的旧文件
  7. POI读写Excel简述之写入
  8. leetcode:Contains Duplicate和Contains Duplicate II
  9. CDZSC_2015寒假新人(2)——数学 B
  10. Hadoop基础
  11. SPL學習之SplDoublyLinkedList
  12. matlab 自定义函数及调用
  13. 基于SDRAM的视频图像采集系统
  14. 【4】Asp.Net Core2.2中间件多扩展对应应用
  15. IDEA - Debug - not supported in -source 1.5
  16. [Swift]LeetCode784. 字母大小写全排列 | Letter Case Permutation
  17. 基于三层架构的增删改查Get知识点
  18. \usepackage{ulem}带下划线的问题解决
  19. python中*args,**kwargs
  20. Lean Data Innovation Sharing Salon(2018.09.15)

热门文章

  1. POJ1716 Integer Intervals
  2. USACO 刷题记录bzoj
  3. HDU 3853 LOOPS 概率DP入门
  4. mvc filters
  5. GMM 的EM 实现
  6. cmd窗口情况下:windows下cmd默认的编码是GBK
  7. 通过 jsp+ajax+servlet+webservice 远程访问天气预报服务
  8. Atcoder CODE FESTIVAL 2017 qual C C - Inserting 'x' 回文串
  9. C++中STL常用容器的区别(转)
  10. 转载——Visiual Studio2012 CLR20r3问题