栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 和 Python 的包:此包是彼包否?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 和 Python 的包:此包是彼包否?

Java里的包机制:

包机制是为了解决类太多产生的类管理问题。
类一多,就不方便去找到自己需要的类,也不便于项目的管理。
因此,在 Java 中,我们把功能上相近的类放在同一个包里。
然后这些类的代码第一句话,就要告诉大家我这个类是属于哪个包的:

package 包名;

在命名上,也比较讲究,一般用公司的域名分块,然后倒过来。
举例:我的公司名字叫 小匚科技,域名是 www.ftech.com
  那么我这家公司的包名的前缀,就是com.ftech.www 。假如有个项目下,叫 网页端项目,包名就是:com.ftech.www.page。
类在包下的一些同名问题,和文件夹下的同名文档问题是一样的。如果有过 Windows 电脑使用经验的朋友就可以很快理解这种机制。
同一个文件夹下不允许有同名文档————同一个包下面不能有同名类;
不同的文件夹下可以有同名的文档————不同的包下面,类同名了也没关系。
  如果你不凑巧,在一个代码文件内,涉及到了两个不同包但同名的类,那么使用时,就通过加前缀的方式来告诉程序,哪个类是从哪个包导的。这种解决方式,也用在 SQL 查询两张表有相同字段的时候,就在字段前各自加上表名。
导包:

import com.ftech.www.page;

Python 里的包机制:
  Python 不像Java一直强调自己的类包一切。Python 里的面向对象思想,更多是通过 模块 来实现的。每个 .py 文件就可以通过被其他 .py 文件import来调用。
导包:

import numpy as np   # 默认都这样缩写
import pandas as pd
共同点

  这两个语言中,“*”都要慎用。一方面降低了编译速度(你不告诉程序到底找谁,它就会一个个挨着找,或者把人都叫过来),另一方面说明你并不清楚程序到底要用哪一个模块或者类。
再者,下面这种写法会有函数名冲突的风险:

from numpy  *
from pandas import *
from tensorflow import *

本质上都是为了解决代码量起来以后,代码块的组织管理问题。
这种对部分代码的封装,能更好的实现“低耦合高内聚”:

  • 即单一模块内实现的功能(方法)要高度相关————高内聚;

  • 模块和模块之间的干扰、关联(接口)要尽可能的少————低耦合。

  其实这个短语在写单独的课程作业,甚至在刷算法题也体会不到。只有到了实际的项目里,看到其他人的代码,你才会真的明白代码之间不受干扰的重要性,以及多导一个包、少导一个包有什么区别。我在实习的时候,还专门有一天的时间排查自己的每个代码文件,有没有导入多余的包。

  如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣  可以进到806549072,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332564.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号