python基础-第六篇-6.4模块混战
Posted 财经知识狂魔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础-第六篇-6.4模块混战相关的知识,希望对你有一定的参考价值。
我们之前接触多的编程方式就是函数式编程,而且喜欢就一个文件里写完所有的程序代码,这样做在前期感觉还不错,不过一旦你的程序变复杂,在易读性和排错方面就感觉好吃力,功能界限不明显,那今天我们就来讲讲怎么用模块进行功能分类
单文件编程
来!先看一个用单文件函数式编程实现所有的功能的例子
#数据源 database = { \'engine\':\'mysql\', \'host\':\'localhost\', \'port\':3306, \'user\':\'root\', \'password\':\'123\' } #用户权限认证 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 = { \'001\':[\'alex\',22,\'engineer\'], \'002\':[\'longge\',43,\'chef\'], \'003\':[\'xiaoyun\',23,\'13baoan\'] } return user_info #显示进入页面信息 def home(): print(\'welcome to home page\') q_data = select(\'user\',\'root\',\'123\') 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\':\'123\' }
其次要有数据库认证,并返回信息的文件
from config import settings def db_auth(configs): if configs.database[\'user\'] == \'root\' and configs.database[\'password\'] == \'123\': print(\'db authentication passed!\') return True else: print(\'db login error.....\') def select(table,column): if db_auth(settings): if table == \'user\': user_info = { \'001\':[\'alex\',22,\'engineer\'], \'002\':[\'longge\',43,\'chef\'], \'003\':[\'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模块混战的主要内容,如果未能解决你的问题,请参考以下文章