关于学习Python的一点学习总结(52->模块就是程序)
91.模块就是程序
# hello.py print("Hello, world!")
将其保存在文件hello.py中,这个文件的名称(不包括扩展名.py)将成为模块的名称。这个文件存 储在目录`E:\python(Windows)`或~/python(UNIX/macOS)中。
>>> import sys>>> sys.path.append('E:/python')>>> import hellohello.world!>>> import hello>>>
结论:导入这个模块时,执行了其中的代码。但如果再次导入它,什么事情都不会发生。如果一定 要重新加载模块,可使用模块importlib中的函数reload,它接受一个参数(要重新加载的 模块)并 返回重新加载的模块。
>>> import importlib>>> hello=importlib.reload(hello)hello.world!
只包含一个函数的简单模块
# hello2.py def hello(): print("Hello, world!")输出:>>> import hello2>>> hello2.hello()hello,world!
结论:这样写主要是为了重用代码,将代码放在模块中,就可以在多个程序中使用它们;如果没有放在独立的模块中,就需要在每个程序中重新编写,所以这样写实现了重用代码。
一个包含有条件地执行的测试代码的模块
# hello4.pydef hello():print('hello,world!')def test():hello()
if __name__=='__main__':test()输出:>>> import hello3>>> hello3.hello()hello,world!>>> hello3.test()hello,world!
将模块放置正确的位置:
方法一:
>>> import sys,pprint
>>> pprint.pprint(sys.path)['','C:\\WINDOWS\\system32','E:\\conda_3\\Scripts','E:\\conda_3\\python36.zip','E:\\conda_3\\DLLs','E:\\conda_3\\lib','E:\\conda_3','C:\\Users\\你好\\AppData\\Roaming\\Python\\Python36\\site-packages','E:\\conda_3\\lib\\site-packages','E:\\conda_3\\lib\\site-packages\\Babel-2.5.0-py3.6.egg','E:\\conda_3\\lib\\site-packages\\win32','E:\\conda_3\\lib\\site-packages\\win32\\lib','E:\\conda_3\\lib\\site-packages\\Pythonwin']
如果要打印的数据结构太大,一行容纳不下,可使用模块pprint中的函数pprint(而不是普通print语句);其中打印的结果可能与这里显示的不完全相同;的要点是,每个字符串都表示一个位置,如果要让解释器能够找到模块,可将其放在其中任何一个位置中;虽然放在这里显示的任何一个位置中都可行,但目录site-packages是最佳的选择,因为它就是用来放置模块的。
例如我们已经在: ‘E:\conda_3\lib\site-packages’,放置了一个
another_hello.py了>>> import another_hello>>> another_hello.hello()hello,world!
方法二:告诉解释器到哪里取找
可以直接修改sys.path,但是这种做法并不常见;标准的做法是将模块所在的目录包含在环境变量PYTHONPATH中:export PYTHONPATH=$PYTHONPATH:~/python;环境变量也是岁操作系统而异的。
关于学习Python的一点学习总结(52->模块就是程序)相关推荐
- 关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)
关于这个正则表达式,我本人也是有点不完全懂,还在继续学习中. 97.re 1.正则表达式: 1.通配符:正则表达式可与多个字符串匹配,可使用特殊字符来创建这种正则表达式 例如:正则表达式'.ython ...
- 关于学习Python的一点学习总结(54->集合->堆->双端队列)
集合,堆,双端队列 再谈集合set:集合是由内置类set实现的 >>> set(range(10)){0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 可使用序列(或其他可 ...
- 关于学习Python的一点学习总结(58->匹配对象和编组)
匹配对象和编组 1.模块re中,查找与模式匹配的子串的函数都在找到时返回MatchObject对象.这种对象包 含与模式匹配的子串的信息,还包含模式的哪部分与子串的哪部分匹配的信息.这些子串部分称 为 ...
- 关于学习Python的一点学习总结(47->静态方法和类方法)
86.静态方法和类方法:静态方法和类方法是这样创建的:将它们分别包装在staticmethod和classmethod类的对象中.静态方法的定义中没有参数self,可直接通过类来调用.类方法的定义中包 ...
- 关于学习Python的一点学习总结(41->相关的BIF操作)
81.一些相关的BIF 1.>>> class BIF:def __init__(self,t):self.t=thasattr(object,name):判断name是否在obje ...
- 关于学习Python的一点学习总结(38)
78.文件: 1.文件的类型:包括ASCII,MIME,.txt等格式. 2.文件的格式类型:(1).MPEG视频:mp4;(2).图片格式:.jpg:(3)powerpoint文档:.ppt; (4 ...
- 关于学习Python的一点学习总结(35->关联超类)
76.调用为关联的超类(继承的类)构造函数 先举个例子: class Bird: def __init__(self): self.hungry = True def eat(self): if se ...
- 关于学习Python的一点学习总结(30->递归实例)
68.递归 先来两个例子: 1.阶乘 def Fact(num):result=numfor i in range(1,num):result*=ireturn result>>> ...
- 关于学习Python的一点学习总结(25->pass占位符)
60.1.什么都不做:pass-可用作为占位符,当你写的某一块程序什么都不做的时候,可以添加这个 pass,不然程序会无法执行. 2.del:Python中的垃圾收集器 先看一段代码: >> ...
最新文章
- Eclipse中git检出、更新、提交、合并分支、以及解决冲突
- ios面试数据结构与算法
- 15.IDA-查看XREF列表
- php获取dropzone上传的文件,php - 如何上传文件,使用php中的dropzone将文件详细信息保存到mysql数据库 - SO中文参考 - www.soinside.com...
- 修改linux资源限制参数命令,linux passwd命令参数及用法详解--linux修改用户密码命令...
- (软件工程复习核心重点)第十章面向对象设计-第四节:设计人机交互子系统和设计任务管理子系统
- atoi、stoi、strtoi区别
- nagios mysql入库_使用NDOUtils将Nagios监控信息存入Mysql
- 小度智能音响拆解 芯片_不拆不快:小度音箱拆解测评
- 12015.linux通过代码或命令形式操作内存/dev/mem
- Spring 源码解析 -- SpringWeb过滤器Filter解析
- Vertica数据库系列:这几天踩过时间函数的坑
- Guacamole-HTML5无客户端远程桌面
- 【视频云端SDK】关于安卓指令集的兼容,Library xxx.so not found
- 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.3 提取VCD、DVD视频中的音频...
- 黑盒测试——边界值分析
- QQ动态表情包如何制作, 制作软件哪个好
- 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
- 视频剪辑的工作前景是什么?
- 如何关闭OPPO手机服务器维护,OPPO天气预警怎么关闭
热门文章
- 图神经网络方法总结(Graph Neural Network)
- MySQL数据库将查询结果插入到其它表中
- python unsupported operand type(s) for /: 'str' and 'str' can only concatenate str (not int) to s
- 资源|深度学习注意力机制TensorFlow 使用教程
- 结合Android去水印APP谈谈分区存储
- 华数传媒牵手阿里云计算共建媒体云平台
- mongodb关联查询 和spring data mongodb
- Ubuntu 64bit 安装 ulipad4.1
- RAID和mdadm
- Quart 2D 绘制图形简单总结