千家信息网

Python如何划分模块

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,本篇内容介绍了"Python如何划分模块"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步,拆分规
千家信息网最后更新 2025年02月13日Python如何划分模块

本篇内容介绍了"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如何划分模块"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0