Java&Python 中import的区别

来源:互联网 发布:淘宝助手如何下架宝贝 编辑:程序博客网 时间:2024/04/29 22:36

一、区别

引用:http://blog.csdn.net/waitforfree/article/details/51254146
1、Java的import本质是声明以下出现的标识符前面都加上命名空间(java只能导入类和静态的成员)

2、Python的import本质是执行了整个模块的代码(python只能导入模块,from语句例外)
Java在import类的时候,并不执行类代码,也不把类加载进内存,所以说import语句对于java来说只在编译器起作用,运行期就没用了。

python在import模块的时候,是执行了模块的所有代码。这里有两种理解方式都正确:一种是代码执行完后,产生了一个模块对象,以后通过这个模块对象访问所有的模块里定义的成员。另一种是代码执行完后,并没有产生一个模块对象(或者仅仅认为产生了一个非常简单的不带要任何成员的对象),但代码里面定义的所有成员前面自动加上了命名空间。以上两种理解方式都可以帮助理解代码(不同的书讲的不一样)。但是我更倾向于第一张理解方式,因为模块的作用就是为了封装和代码的重用,而包的主要作用才是命名空间。【其实,Java中的名字空间即包名是虚的,不是一个实体,只起到姓氏的作用;而Python中的名字空间即模块名是实的,是一个真正的实体,就好像是个类一样,只不过是比类更高级的一层封装,它可以封装类、变量、函数等。】

【总之,Java中包直接管理到类,而在Python中包直接管理到模块】

二、关于import

1、import

# 用法import module关键字 模块名# 同时导入多个模块,使用 , 隔开import module1,module2,module3

import 模块名称 可以放在文件开头,也可以放在方法内部。这和作用域有关系,放在开头代表它的作用域是全局的。放在方法内部代表它的作用域是局部的

2、from-import 语句

# 用法from module import name关键字 模块名 关键字 方法名使用这种方式导入可以直接使用 导入的内容
0 0
原创粉丝点击