博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 模块
阅读量:6477 次
发布时间:2019-06-23

本文共 2000 字,大约阅读时间需要 6 分钟。

模块基本概念

模块是从逻辑上组织python代码的形式
当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此交互
这些代码片段相互间有一定的联系,可能是一个包含数据成员的方法类,也可能是一组相关但彼此独立的操作函数
 
创建模块
模块物理层面上组织模块的方法是文件,每一个以.py作为结尾的python文件都是一个模块
模块的名称切记不要与系统中已存在的模块重名
模块文件名字去掉后面的扩展名(.py)即为模块名
 
导入模块(import)
使用import导入模块
模块被导入后,程序会自动生成pyc的字节码文件以提升性能
模块属性通过”模块名,属性”的方法调用
如果仅需要模块中的某些属性,也可以单独导入
>>> import sys>>> import string>>> string.digits'0123456789'>>> from random import randint>>> randint(1,10)2>>> randint(1,10)8>>> randint(1,10)5
#!/usr/bin/env pythonimport timefor i in range(10):    print  i,    time.sleep(0.5)/usr/bin/python2.6 /root/PycharmProjects/untitled10/time.py0Traceback (most recent call last):  File "/root/PycharmProjects/untitled10/time.py", line 3, in 
import time File "/root/PycharmProjects/untitled10/time.py", line 7, in
time.sleep(0.5)AttributeError: 'module' object has no attribute 'sleep'Process finished with exit code 1

choice可以直接用 不用写random但是random不能使用

>>> string.upper('abcdef')'ABCDEF'>>> from random import choice>>> choice('abcdef')'f'>>> choice('abcdef')'d'>>> random.choice('abcdef')Traceback (most recent call last):  File "
", line 1, in
NameError: name 'random' is not defined

起别名

>>> import random as rdm>>> rdm.choice('123123')'3'>>> rdm.choice('123123')'2'

模块加载(load)

一个模块只被加载一次,无论被导入多少次
只加载一次可以阻止多重导入时,代码被多次执行
如果两个文件相互导入,防止无限相互加载
模块加载时,顶层代码会自动执行,所以只将函数放入模块的顶层是良好的变成习惯
导入的时候模块的代码会被执行
#!/usr/bin/env pythonprint __name__/usr/bin/python2.6 /root/PycharmProjects/untitled10/foo.py__main__Process finished with exit code 0#!/usr/bin/env pythonimport foo/usr/bin/python2.6 /root/PycharmProjects/untitled10/bar.pyfooProcess finished with exit code 0

独立执行和导入的差别

直接运行了就是main 被其它import的就是foo
#!/usr/bin/env pythondef pstar(num = 20):    return '*' * numif __name__ =='__main__':    print pstar()/usr/bin/python2.6 /root/PycharmProjects/untitled10/main1.py********************Process finished with exit code 0

 

 

转载于:https://www.cnblogs.com/weiwenbo/p/6564515.html

你可能感兴趣的文章
4、输出名称 Exported names
查看>>
paste工具
查看>>
Pre-echo(预回声),瞬态信号检测与TNS
查看>>
【转载】如何发送和接收 Windows Phone 的 Raw 通知
查看>>
poj2378
查看>>
Java文件清单列表
查看>>
js url传值中文乱码之解决之道
查看>>
Trusty TEE
查看>>
[LeetCode] Reverse String 翻转字符串
查看>>
学习iOS【3】数组、词典和集合
查看>>
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
java.math.BigDecimal
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>
MyGUI 解析
查看>>
Linux中的ls命令详细使用
查看>>