python学习(十二)模块
怎么一下子就来学了模块?
其实学了判断、循环、函数等知识就可以开始下水写程序了,不用在意其他的细节,等你用到的时候再回过头去看,此所谓囫囵吞枣学习法。
为啥学模块?
有点用的、或者有点规模的程序都是要引入模块的。
一个小例子
你可以把一个模块(以文件的形式组织的)看成一个大的对象,里面有个中属性,以变量的方式使用。
例子:
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)
python学习(十二)模块的更多相关文章
- Python进阶(十二)----re模块
Python进阶(十二)----re模块 一丶re模块 re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- python学习之argparse模块
python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习 Part4:模块
Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...
- (转)SpringMVC学习(十二)——SpringMVC中的拦截器
http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...
- Python学习day19-常用模块之re模块
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- python基础学习十 logging模块详细使用【转载】
很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...
- python 学习day5(模块)
一.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能 ...
- Python学习之路——模块
一.模块: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...
随机推荐
- Javascript&Html-history对象
Javascript&Html-history对象 history对象保存着用户的上网记录,这些记录从用户打开浏览器开始. 用户借助history对象实现的跳转. history.go(-1) ...
- http://www.codeproject.com/KB/validation/MultipleDataAnnotations.aspx
原文发布时间为:2011-08-12 -- 来源于本人的百度文章 [由搬家工具导入] http://www.codeproject.com/KB/validation/MultipleDataAnno ...
- 给页面上所有的a标签增加随机数每次点击保证最新
$(document).click(function(){ $("a").each(function(){ if($(this).parent().parent().hasClas ...
- LeetCode OJ-- Substring with Concatenation of All Words ***
https://oj.leetcode.com/problems/substring-with-concatenation-of-all-words/ 找S中子串,每个元素都在T中出现了,且所有T中元 ...
- EventBus 3.0: 入门使用及其使用 完全解析
前言 EventBus是greenrobot再Android平台发布的以订阅-发布模式为核心的开源库. EventBus翻译过来是事件总线意思.可以这样理解:一个个(event)发送到总线上, 然后E ...
- AC日记——数据流中的算法 51nod 1785
数据流中的算法 思路: 线段树模拟: 时间刚刚卡在边界上,有时超时一个点,有时能过: 来,上代码: #include <cstdio> #include <cstring> # ...
- wireshark学习笔记
之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包. 记得大学的 ...
- Objective-C的self.用法的一些总结
最近有人问我关于什么时候用self.赋值的问题, 我总结了一下, 发出来给大家参考. 有什么问题请大家斧正. 关于什么时间用self. , 其实是和Obj-c的存取方法有关, 不过网上很多人也都这么解 ...
- mac 下mysql常用命令
是那种单独安装的mysql 启动: /usr/local/mysql/bin/mysql -u root -p
- SilverLight.3-Validation:二、银光验证。TheLabel、TheDescriptionViewer和TheValidationSummary
ylbtech-SilverLight.3-DataControls_BetterDataFroms:二.银光验证.TheLabel.TheDescriptionViewer和TheValidatio ...