day 3 模块
1.系统自带模块 xxx.py 文件 就是模块
### 模块存放位置
In [1]: import os In [2]: os.__file__
Out[2]: '/usr/lib/python3.5/os.py'
python@ubuntu:~$ cd /usr/lib/python3.5/
python@ubuntu:/usr/lib/python3.5$ ls
abc.py html selectors.py
aifc.py http shelve.py
antigravity.py idlelib shlex.py
argparse.py imaplib.py shutil.py
ast.py imghdr.py signal.py
asynchat.py importlib _sitebuiltins.py
asyncio imp.py sitecustomize.py
2.第三方模块
#### 安装第三方模块
python@ubuntu:~$ sudo pip install pycharm
3.自定义模块
1)版本1:import sendmsg
#### sendmsg.py def test1():
print("----test1") def test2():
print("----test2") test1()
test2()
######### main.py
import sendmsg
sendmsg.test1()
sendmsg.test2()
####运行结果 python3 main.py
----test1
----test2
.
├── main.py
├── __pycache__
│?? └── sendmsg.cpython-35.pyc
c语言写的python解释器 3.5版本 字节码
├── recvmsg.py
└── sendmsg.py

2)版本2: from sendmsg import test1,test2
### main.py
from sendmsg import test1,test2
test1()
test2()
3)版本3:导入1000个方法
### main.py
from sendmsg import * #不推荐使用,切记
#from recvmsg import * #recvmsg模块有可能有test1()方法 test1()
test2()
test2()
test2()
#### main.py
import sendmsg
sendmsg.test1()
sendmsg.test2()
sendmsg.test2()
sendmsg.test2()
4)版本4: as 针对模块名字较长的使用
In [1]: import time as tt In [2]: tt.time()
Out[2]: 1511591526.7604477
4.__name__变量
自己测试,执行test1()
老板导入sendmsg.py 模块,不执行test1()
#### sendmsg.py 模块
def test1():
print("----test1") def test2():
print("----test2") test1()
test2() python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 sendmsg.py
----test1
----test2
### main.py
import sendmsg
sendmsg.test1()
sendmsg.test2() python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 main.py
----test1
----test2
----test1
----test2
2)版本2:什么是__name__变量
python@ubuntu:~/pythonS6/python基础092/06-模块$ cat sendmsg.py def test1():
print("----test1") def test2():
print("----test2") print(__name__)
test1()
test2()
python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 sendmsg.py
__main__
----test1
----test2 python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 main.py sendmsg #打印的是模块名
----test1
----test2
----test1
----test2
3)版本3:
def test1():
print("----test1") def test2():
print("----test2") #print(__name__) #__main__
if __name__ == "__main__": #如果自己测试,执行下面的语句 #如果老板导入模块,不执行
test1()
test2()
python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 sendmsg.py
----test1
----test2
python@ubuntu:~/pythonS6/python基础092/06-模块$ python3 main.py
----test1
----test2
总结:
- 可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码
5.程序大体框架
class Xxx(object):
pass def xxx():
pass def main():
pass if __name__ == "__main__": #别人调用上面的方法不执行
main() #自己测试,执行
day 3 模块的更多相关文章
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Python标准模块--Unicode
1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...
- Python标准模块--Iterators和Generators
1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- 理解nodejs模块的scope
描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...
- nodejs模块发布及命令行程序开发
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...
- 开始学nodejs——net模块
net模块的组成部分 详见 http://nodejs.cn/api/net.html 下面整理出了整个net模块的知识结构,和各个事件.方法.属性的用法 net.Server类 net.Socket ...
随机推荐
- python3 安装win32api
Python3 中先安装pip install pywin32 但是在调用时任然说找不到该模块,于是查找资料后得出需要使用python -m pip install pypiwin32.
- Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案
Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...
- GAutomator,GAutomatorview和Android SDK,Unity配置
1. 安装和配置JDK 环境配置中: JAVA_HOME:E:\Program Files\java\jdk1.8.0_131 Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre ...
- git 从远程仓克隆到本地新分支
克隆远程仓代码到本地 git clone http://******:8080/DEV1-WMALL_DQ/WMALL_DQ_Front.git // git 库地址 当前分支是master ...
- 用Vue的父子组件通信实现todolist的功能
先上代码 <body> <div id="root"> <div> <input v-model="inputValue&quo ...
- 19-3-14Python中函数的进阶
1.动态参数: def func(*args): #在形参位置*叫做聚合 print(args) #元组形式 func(1,2,3,4,5,6) def func(**kwargs): # 动态关键字 ...
- pt-archiver数据归档
可以使用percona-toolkit包中的pt-archiver工具来进行历史数据归档 pt-archiver使用的场景: 1.清理线上过期数据. 2.清理过期数据,并把数据归档到本地归档表中,或者 ...
- windows 使用npm安装webpack 4.0以及配置问题的解决办法
输入cmd点击打开 输入node -v 出现nodejs版本号 输入npm -v 出现npm版本号则安装npm安装成功, 2.安装webpack 桌面新建一个webpack-test文件夹,点击进入文 ...
- PHP处理高分辨率图片的问题
今天小伙伴在群里问了这么一个问题: 出现这种情况就是因为内存不足,PHP程序直接退出了,报错大概如下: 上图的意思就是说,我们能使用的内存最大是8M,但是处理这个图片还需要额外的41bytes,就会导 ...
- [修正] Firemonkey SpeedButton 鼠标移开按钮后 IsPressed 为 False 的问题
未修正: 修正代码: 请将 FMX.StdCtrls.pas 复制到自己的工程目录下,再修改如下代码: procedure TCustomButton.RestoreButtonState; begi ...