我们之前接触多的编程方式就是函数式编程,而且喜欢就一个文件里写完所有的程序代码,这样做在前期感觉还不错,不过一旦你的程序变复杂,在易读性和排错方面就感觉好吃力,功能界限不明显,那今天我们就来讲讲怎么用模块进行功能分类

  

单文件编程

  来!先看一个用单文件函数式编程实现所有的功能的例子

#数据源
database = {
'engine':'mysql',
'host':'localhost',
'port':3306,
'user':'root',
'password':''
} #用户权限认证
def db_auth(user_type,pwd):
if database['user'] == user_type and database['password'] == pwd:
print('db authentication passed!')
return True
else:
print('db login error...') #查询资源
def select(table,user_type,pwd):
if db_auth(user_type,pwd):
if table == 'user':
user_info = {
'':['alex',22,'engineer'],
'':['longge',43,'chef'],
'':['xiaoyun',23,'13baoan']
}
return user_info #显示进入页面信息
def home():
print('welcome to home page')
q_data = select('user','root','')
print('query res(查询资源)',q_data)
def movie():
print('welcome to movie page') if __name__ == '__main__':
home()

  感觉是不是易读性不差?我们今天不谈这个,就谈怎么用模块实现这个程序

模块编程

  首先在我们要有个配置文件,来存储配置信息,就上面程序说到的数据源

  

database = {
'engine':'mysql',
'host':'localhost',
'port':3306,
'user':'root',
'password':''
}

  其次要有数据库认证,并返回信息的文件

  

from config import settings

def db_auth(configs):
if configs.database['user'] == 'root' and configs.database['password'] == '':
print('db authentication passed!')
return True
else:
print('db login error.....') def select(table,column):
if db_auth(settings):
if table == 'user':
user_info = {
'':['alex',22,'engineer'],
'':['longge',43,'chef'],
'':['xiaoyun',23,'13baoan']
}
return user_info

  再次,我们要有个显示主程序页面信息的文件

  

from backend.db.sql_api import select

def home():
print('welcome to home page')
q_data = select('user','ddd')
print('query res:',q_data) def movie():
print('welcome to movie page') def tv():
print('welcome to tv page')

  最后,再设置一个主程序入口文件就可以了

  

import sys
import os
dizhi = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(dizhi) from backend.logic import handle handle.home()

  好!差不多用模块对程序的功能分类好了,不过在导模块的时候,要注意我要导的模块时是否在sys.path里的路径下

  最后的最后,模块编程是怎么帮我增加易读性和加速拍错的??

  

  我们从主入口入手,顺着模块给我们的信息往上爬,跟爬楼梯一样的,最终会看到我们想要的信息

                                            欢迎大家对我的博客内容提出质疑和提问!谢谢

                                                                             笔者:拍省先生 

python基础-第六篇-6.4模块混战的更多相关文章

  1. python基础-第六篇-6.2模块

    python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...

  2. python基础-第六篇-6.1生成器与迭代器

    迭代器 特点: 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容 不能随机访问集合中的某个值 ,只能从头到尾依次访问 访问到一半时不能往回退 便于循环比较大的数据集合,节省 ...

  3. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  4. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  5. NHibernate 组件基础 (第六篇)

    NHibernate 组件基础 (第六篇) 一.组件简介 组件(Component)可以理解为被一个对象所包含的对象而持久化,而并非一个实体.简单说来,假如数据库有FirstName,LastName ...

  6. Python开发【第六篇】:模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  7. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  8. Python基础【第二篇】

    一.Python的标准数据类型 Python 3中主要有以下6中数据类型: Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary( ...

  9. Python开发【第*篇】【模块】

    模块分为三种: 自定义模块 第三方模块 内置模块 1.模块导入 import model from model.xx.xx import xx from model.xx.xx import xx a ...

随机推荐

  1. 用键盘控制DIV && Div闪烁

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. PHP实现查看邮件是否被阅读

      <? //当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读.这里有段非常有趣的代码片段能够显示对方IP地址记录阅读//的实际日期和时间. error_reporting(0); Hea ...

  3. Android应用程序快速更换包名的方法

    今天遇到需要修改Android包名的问题,开始试了直接修改包名,会出现一些错误 1.layout中直接引用类的地方 2.Manifest中对gen定义的地方 经测试,总结出一下方法: 1.关闭自动编译 ...

  4. 深入浅出java静态代理和动态代理

    首先介绍一下.什么是代理: 代理模式,是经常使用的设计模式. 特征是.代理类与托付类有同样的接口,代理类主要负责为托付类预处理消息.过滤消息.把消息转发给托付类.以及事后处理消息. 代理类和托付类,存 ...

  5. 每天一个JavaScript实例-展示设置和获取CSS样式设置

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. Windows键

    Windows键+D: 最小化或恢复windows窗口   Windows键+U: 打开“辅助工具管理器”    Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 Windows ...

  7. ASP.NET中的配置文件

    ASP.NET中的配置文件 原创 2014年10月13日 08:15:27 1199   在机房收费系统的时候曾经应用过配置文件,当时也就那么一用对配置文件了解的不是很透彻,下面就来总结一下有关配置文 ...

  8. 【.net项目中。。】.net一般处理程序使用方法

    1.基本原理图 IsReusable属性用来表示在IHttpHandlerFactory对象创建IHttpHandler的时候是否能够将这个Handler存入池中以便重用. 一般处理程序(HttpHa ...

  9. Atitit.Java exe bat  作为windows系统服务程序运行

    Atitit.Java exe bat  作为windows系统服务程序运行 1. 使用SC命令+srvany.exe (不错,推荐)+net start1 1.1. First 创建一个java的运 ...

  10. Ubuntu16.04下搜狗输入法、Sublime Text 3的安装

    Ubuntu16.04下搜狗输入法.Sublime Text 3的安装 一.搜狗输入法 1. 安装中文语言 默认在Ubuntu16.04下是没有中文的,需要安装中文,在System Settings- ...