本篇内容介绍了“Python如何划分模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
第一步,拆分规则
把规则部分的代码,复制到新文件:rule.py,原来的代码注释或删除。这里为了对比,DE8UG 在 08 号文件进行了注释,见最后的代码。
# rule.py
# author: DE8UG
# PROJECT: rengleme
rule = {
"湿垃圾": ["菜叶", "橙皮", "葱", "饼干"],
"干垃圾": ["旧浴缸", "盆子", "海绵", "卫生纸"]
}
第二步,拆分处理垃圾的核心代码
新建文件:handle_laji.py,把处理垃圾分类的函数复制到这里。
# handle_laji.py
# author: DE8UG
# PROJECT: rengleme
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)
第三步,处理文件,加载和保存垃圾
新建文件:handle_file.py,把处理文件的函数复制到这里。
# handle_file.py
# author: DE8UG
# PROJECT: rengleme
import 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 rule
import 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如何划分模块”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/219846.html