温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何划分模块

发布时间:2021-12-17 17:37:26 来源:亿速云 阅读:282 作者:iii 栏目:大数据

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI