本篇内容介绍了“Python如何划分模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
把规则部分的代码,复制到新文件:rule.py,原来的代码注释或删除。这里为了对比,DE8UG 在 08 号文件进行了注释,见最后的代码。
# rule.py# author: DE8UG# PROJECT: renglemerule = { "湿垃圾": ["菜叶", "橙皮", "葱", "饼干"], "干垃圾": ["旧浴缸", "盆子", "海绵", "卫生纸"]}
新建文件:handle_laji.py,把处理垃圾分类的函数复制到这里。
# handle_laji.py# author: DE8UG# PROJECT: renglemedef reng_laji(rule_k, laji, ljt): if rule_k == ljt['name']: ljt['data'].append(laji)def fenlei(laji, rule, ljt): for k, v in rule.items(): print(k, v) if laji in v: print('找到了垃圾:', laji, k) reng_laji(k, laji, ljt)
新建文件:handle_file.py,把处理文件的函数复制到这里。
# handle_file.py# author: DE8UG# PROJECT: renglemeimport json# print('加载文件:', ljt_gan)def load_data(filename): with open(filename) as f: data = json.load(f) return data# 用函数封装写文件的代码def save_to_file(filename, data): with open(filename, 'w') as f: json.dump(data, f)
把 08 文件的已经移除的代码删除(我这里为了对比仅做了注释),然后在最前面导入前面几个新 py 文件。
注意:这几个文件需要在一个目录下,以免出现不同路径找不到文件的情况。
import 导入相应的模块后,后续的函数,需要用模块.函数名
的方式调用。请自行补充所需函数名。然后进行代码测试。没有问题的话,我们今天新的改造就完成了。
# author: DE8UG# 创建垃圾桶和垃圾# 规则:k:v,一个k对应一个v,代码表示用冒号分割# 输入# 判断# 保存# 函数# 综合# 8 划分模块,转移代码# import json# 导入自建模块import ruleimport handle_file, handle_laji# rule = {# "湿垃圾": ["菜叶", "橙皮", "葱", "饼干"],# "干垃圾": ["旧浴缸", "盆子", "海绵", "卫生纸"]# }# # print('加载文件:', ljt_gan)# def load_data(filename):# with open(filename) as f:# data = json.load(f)# return data# def reng_laji(rule_k, laji, ljt):# if rule_k == ljt['name']:# ljt['data'].append(laji)# def fenlei(laji, rule, ljt):# for k, v in rule.items():# print(k, v)# if laji in v:# print('找到了垃圾:', laji, k)# reng_laji(k, laji, ljt) # reng_laji(k, laji, ljt_shi)# 用函数封装写文件的代码# def save_to_file(filename, data):# with open(filename, 'w') as f:# json.dump(data, f)def main(): # 定义垃圾桶 ljt_shi = { 'name': "湿垃圾", 'data': [] } ljt_gan = { 'name': "干垃圾", 'data': [] } # 加载已有的垃圾 ljt_gan = handle_file.load_data('gan.json') ljt_shi = handle_file.load_data('shi.json') print('加载文件:', ljt_gan, ljt_shi) # 扔垃圾 laji = input("输入要扔的垃圾:") print("垃圾:", laji) # 分类 handle_laji.fenlei(laji, rule, ljt_gan) handle_laji.fenlei(laji, rule, ljt_shi) print('-'*20) print(ljt_shi) print(ljt_gan) # 调用函数,保存到具体的垃圾桶文件 handle_file.save_to_file('gan.json', ljt_gan) handle_file.save_to_file('shi.json', ljt_shi)if __name__ == "__main__": main()
“Python如何划分模块”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/howiewang/blog/4452754