1.模块化程序设计思想

首先分清楚模块和包的区别:

模块对应python的源代码文件,实质是以.py为扩展名的python文件

多个功能相似的模块可以组成一个包

模块化编程设计概念:

模块的API:

模块化程序设计的原则是先设计api,然后实现API,最后在客户端中导入和使用这些函数和类。

可以通过help函数查看模块的API

模块设计的一般原则:

先设计API,再实现模块

控制模块规模,只提供需要的函数,降低复杂性

在模块中编写测试代码,并消除全局代码

使用私有函数实现不被外部客户端调用的模块函数

通过文档获取模块帮助信息

2.模块的导入和创建

1.模块的导入方法有两种:

import 模块名 [ as 别名]

from 模块名 import 方法/类/对象

from ... import  * ,一次性导入模块的全部方法,但当导入文件存在与导入内容重名的方法/变量/类,程序执行会报错;当模块很大时,一次导入就很不方便。

注意在jupyter notebook中导入自定义包,需要先将包上传到notebook中。

2.模块创建

python文件中每个文件都可以作为一个模块存在,文件名即模块名

3.模块搜索路径和创建路径方法

使用sys.path,返回搜索路径的列表,因为其本质时列表,所以可以通过.append方法增加搜索路径,但是这只是暂时添加,永久添加需要将其加入环境变量中。

4.模块的属性

__all__ = [] ,控制模块中哪些功能可以使用*导出

__name__获得模块的名字

模块只导入一次,再次import或from,实际上语句没有执行;模块导入后,进行编译,编译文件存储在.pyc文件中,加快下次的导入速度。

python怎么实现模块化_python模块化编程与简单模块实现相关推荐

  1. python socket tcp客户端_python网络编程socketserver模块(实现TCP客户端/服务器)

    摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...

  2. python turtle绘制柱状图_python绘制图形(Turtle模块)

    用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...

  3. python课设代码_python课程编程题汇总(上)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 中篇在此→python课程编程题汇总(中) 下篇在此→pytho ...

  4. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  5. python 判断中文标点符号_Python入门编程题库27--生成随机密码

    一.题目 请编写程序,生成随机密码.具体要求如下: (1)使用 random 库,采用 0x1010 作为随机数种子. (2)密码 有s中的字符组成. (3)每个密码长度固定为 10 个字符. (4) ...

  6. python并发处理list数据_python并发编程之多进程2--------数据共享及进程池和回调函数...

    一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...

  7. 理解python并发编程_Python并发编程很简单

    上次已经和大家探讨了关于进程和线程的区别和联系相关的东东,今天呢,咱们再次回到 好啦,废话少说,咱们就开始吧! 首先说一下哦,_thread和threading哦,到这可能有朋友会问了,这两个有什么区 ...

  8. python面向对象怎么解决_Python面向对象编程1

    前言 面相对象是Python的重要特性,继承了C++的类风格,在Python中的一切数据类型都是面向对象的.本章主要介绍Python的面向对象编程. 面向对象: 什么是OOP(面向对象),Object ...

  9. python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)

    大家好,并发编程进入第四篇. 本文目录 前言 Event事件 Condition Queue队列 总结 .前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程无非 ...

  10. python多进程并发代码_Python并发编程系列之多进程(multiprocessing)

    1引言 本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心, ...

最新文章

  1. 规则就够用?还是必须上机器学习?46页ppt教你如何把规则引擎和机器学习融会贯通...
  2. 在电脑桌面怎样用命令开启远程桌面?
  3. 8086CPU汇编:一般的标号与直接定址标号
  4. c语言修改elf文件crc32,ELF文件中调试信息的格式说明?
  5. 快速排序 自带时间复杂度检测
  6. 【转】Task和async/await详解
  7. C++:19---this指针
  8. 信息学奥赛一本通 1172:求10000以内n的阶乘 | OpenJudge NOI 1.6 14:求10000以内n的阶乘
  9. 中国拟修订保守国家秘密法 严防通过互联网泄密
  10. antd vue关闭模态对话框_Vue.extend 登录注册模态框
  11. mysql genlog 分析_使用mysqlsla 分析 mysql logs
  12. Matlab曲线标记间距自定义
  13. 程序员的基础和解决问题的思维很重要
  14. pkm是什么意思_2017年的你应该拥有什么样的PKM系统?
  15. 【5G系列】Network Slicing学习总结(4)
  16. 取次花丛懒回顾,半缘修道半缘君。
  17. 惠普关闭 secure boot
  18. matlab 狄利克雷函数代码,狄利克雷函数
  19. signal(SIGCHLD, SIG_IGN)
  20. python清除输出内容_如何只清除python输出控制台中的最后一行?

热门文章

  1. 联想电源管理软件 v6.68.8官方版
  2. 企业网络工程设计——局域网中的冗余链路
  3. 搜索引擎自动提交连接php文件,死链检测工具(自动提交给百度,逆天了)
  4. 1230v3配服务器内存性能提升,E3 1230 V3四核3.7G睿频福利教程及评测
  5. android 开发按键精灵,安卓按键精灵实现后台
  6. 如何用计算机计算一元三次方程,计算器如何解一元三次方程?
  7. 迅为-iMX6ULL开发板原创嵌入式开发文档系统化学习
  8. Mysql,Oracle varchar2 字节长度
  9. ORACLE数据库数据迁移
  10. Nvivo 12 安装包可自动编码