python程序格式框架_Python 框架化代码的学习

1 def 1:2 pass

3

4 def 2:5 pass

6

7 def 3:8 pass

从Python初学我们习惯的风格就是如上图,把函数方法直接放到全局来写,这的确是最简单易懂的方式。但随着我们的深入学习,如果一个.py文件中有几十个全局函数时,我们开始头疼了,在哪里找我想要的函数,难道次次都要Ctrl+左键吗?

classMySport1:def __init__(self):pass

defPingpong(self):pass

defBasketball(self,player):pass

defRun_MySport1:

sport=MySport1()

sport.Pingpong()

sport.Basketball(myself)classMySport2:def __init__(self):pass

defSport1(self):pass

defSport2(self):pass

defRun_MySport2:

sport=MySport2()

sport.Sport1()

sport.Sport2()

其实Python给了足够的自由,但是对于一个框架化的代码,是利于项目开发移植,利于不同时期不同工程师维护的,其风格应是整洁简明。我比较喜欢图2我自己写的风格,通过对象化的类进行分类,利于代码追踪和维护。这样的封装对于多个.py文件的拓展使用还是很有用的。因为类中属性是个很有用的东西。类结束后面,我喜欢跟一个全局函数,用来表示调用此类的步骤的一个例子,作为后面的参考,以免长期后对代码的遗忘。

def __init__(self):

self.csvFileName= 'setting.json'self.csvFilePath= 'C:' #默认与程序同根目录,暂不用

#通过JSON文件,配置绘图属性,X轴点数、Y轴...,这里简单声明属性。

self.map_X =0

self.map_Y=0

self.map_Z=0

self.map_Step= 1self.my_file={}

self.my_mode_HeatMap={}

self.my_mode_ScatterPlot={}defSet_JSON(self):"""配置属性 编码形式UTF-8,无BOM"""

#json文件报错不能编码,应当用编辑器保存json格式为无COM的utf-8

with open(self.csvFileName, 'r') as f:

file_p= json.loads(f.read() ) #,encoding='utf-8'

print file_p['file']['name']#字典应对多元素的数据整理,调用方法 self.my_file(csv_filename)

self.my_file={"csv_filename": file_p['file']['name'],"csvFilePath": file_p['file']['path'],"draw_mode": file_p['file']['draw_mode'],"is_savefig": file_p['file']['save_fig'],"fig_format": file_p['file']['fig_format']

}

外部习惯用JSON等作配置文件,以供操作员修改某些参数,又不需其修改程序时,我们需要读取JSON文件。我发现用字典更容易将这些相关的参数分类,否者如果有几百个参数需要,总不能写几百的属性吧,那写属性都比功能代码要长喽。

.json文件的内容如下

{"file":

{"name": "ABC.csv","path": "C:/AA/BB/CC/DD","draw_mode": 0,"save_fig": "False","fig_format": ".png"},

}

这样“file”作为一个字典名,"name"为其中一个键,"ABC.csv"为其键对应的值。这样字典就能分别提取到所有需要的参数,键名可以根据自己需要再次封装。其实,还有另一个更好的思路,那就是读取JSON文件,后自动生成相应属性并赋值,这样的好如果在外部追加JSON文件的参数,内部赋值就可以不用添加新的属性或是字典来配对。但我还没能实现,有待研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值