python3模块初步

模块

  • 实质就是py文件。查看本地系统自带的模块
Snip20170810_1.png
  • 如果想安装其他模块,可以通过
sudo pip install pygame

如果是python3

sudo pip3 install pygame

如果ubuntu系统提示找不到pip命令可以通过源添加

 sudo apt-get install python3-pip
  • 自己写一个模块,也就是写一个py文件

文件名:sendmsg.py

def test1():
    print ("----test1---")

def test2():
    print ("-----test2----")

if __name__ == '__main__':
    test1()
    test2()

文件名:receivemsg.py

def test1():
    print ("reveive----test1---")

def test2():
    print ("reveive-----test2----")
test1()
test2()

我们正常写代码需要测试的,比如单元测试,在公司提交代码之前也要现自己测试。毕竟不想做no1.
汇总后写一个main.py测试所有不同模块的代码。
文件名:main.py

import sendmsg as s
import revmsg as r
s.test1()
s.test2()
r.test1()

此处就看到了非常常见的import关键字,由此就证明,模块其实就是个py文件。毕竟我只写一个两个py文件,正好就可以导入了。运行main.py会发现如下运行结果


Snip20170810_2.png

发现main.py中只进行了三次函数调用,结果确显示5个调用。
原来,每个模块被导入的时候,默认情况都会执行一遍所有的函数。注意,这里的sendmsg.py文件末尾有一处不同于receive.py文件。因此结果中只出现reveive打印两次,sendmsg并没有打印。


if __name__ == '__main__':
    test1()
    test2()

到底是什么意思?
如果是本身打印name,结果是main

Snip20170810_3.png

如果通过别人导入后打印,name,结果是它自身的文件名字
Snip20170810_5.png

因此

if __name__ == '__main__':
    test1()
    test2()

上述代码的意思就是,如果本身文件执行的,就允许执行下面的代码,一般是测试。如果是别人调用,就不给予执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,248评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,437评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,734评论 0 17
  • 相比大海的磅礴包容,海边沙滩的广阔无垠,也许家乡的小河滩更是一种羞涩的清秀。我常常想生活在海边的人是幸运的,大...
    荷香滴露阅读 490评论 0 1
  • 接上. 而且是在自家公司里面,而且是楼上部门的同事,这尼玛不行动,就说不过去了. 然而当时却是这样的,同部门的同事...
    文盲阅读 137评论 0 1