`
huangqinqin
  • 浏览: 368032 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

jython中模块与包的引用

 
阅读更多

转载:http://www.cnblogs.com/phinecos/archive/2010/05/07/1730027.htm

 

 

 

 

 

执行import module时,解释器会根据下面的搜索路径,搜索module1.py文件。

1) 当前工作目录

2) PYTHONPATH中的目录

3) Python安装目录 (/usr/local/lib/python)

事实上,模块搜索是在保存在sys.path这个全局变量中的目录列表中进行搜索。

sys.path会在解释器开始执行时被初始化成包含:

1)当前工作目录

2) PYTHONPATH中的目录

3) Python安装目录 (/usr/local/lib/python)

package是模块的集合,每一个Package的根目录下面都应当有一个__init__.py 文件。当解释器发现目录下有这个文件时,他就会认为这是一个Package,而不是一个普通的目录。

我们通过下面这样的一个实例来说明

假定项目结构如下:

 

demo.py
MyPackage
---classOne
.py
---classTwo
.py
---__init__
.py

       现在我们通过两种方式来实现包机制,主要区别就在于是否在__init__.py中写入模块导入语句。

1__init__.py是一个空白文件的方式,

 demo.py内容如下:

复制代码
from MyPackage.classOne import classOne
from MyPackage.classTwo import classTwo

if __name__ == "__main__":
    c1 
= classOne()
    c1.printInfo()
    c2 
= classTwo()
    c2.printInfo()
复制代码

 

classOne.py内容如下:

class classOne:
    
def __init__(self):
        self.name 
= "class one"
    
    
def printInfo(self):
        
print("i am class One!")

 classTwo.py内容如下:

复制代码
class classTwo:
    
def __init__(self):
        self.name 
= "class two"
    
    
def printInfo(self):
        
print("i am class two!")
        
复制代码

 2,如果在__init__.py中写入导入模块的语句,则上述例子可以这样来做。

 

其中__init__.py中内容如下:

from classOne import classOne
from classTwo import classTwo

demo.py内容如下:

 

复制代码
import MyPackage

if __name__ == "__main__":
    c1 
= MyPackage.classOne()
    c1.printInfo()
    c2 
= MyPackage.classTwo()
    c2.printInfo()
复制代码

或者demo.py也可以定义如下:

 

 

复制代码
from MyPackage import *

if __name__ == "__main__":
    c1 
= classOne()
    c1.printInfo()
    c2 
= classTwo()
    c2.printInfo()
复制代码
分享到:
评论

相关推荐

    最全的Jython学习资料:来自官网(一)内置模块

    在 Jython 中,内置类型被描述在一起,以便于查找和引用。例如,整数(int)、浮点数(float)、字符串(str)等都是 Python 的内置类型。对于这些内置类型的了解,是进行 Python 或 Jython 编程的基础。 在编程中...

    Java中调用Python代码

    通过Jython,Java可以像调用Java类一样调用Python模块。不过,Jython并不支持所有Python库,尤其是C扩展的库。 2. **JPyCall**: JPyCall是一个Java库,它提供了与Python互操作的能力,允许Java程序直接调用Python...

    Python编程入门经典

    21.7.1 在Jython中使用 Java类 466 21.7.2 从Jython访问数据库 471 21.7.3 通过Jython编写 Java EE servlet 477 21.7.4 选择Jython开发工具 483 21.8 使用Jython进行测试 483 21.9 嵌入Jython解释器 484 21.10 处理C...

    Python编程助教面试题.zip

    4. **模块与包**: - 导入模块:import语句,了解内置模块和第三方模块的使用。 - 自定义模块:创建.py文件,组织代码结构。 - 包管理:了解pip工具,用于安装、升级和管理Python包。 5. **面向对象编程**: - ...

    菜鸟的Python笔记

    Python还可以与其他语言集成,例如与C/C++的集成,以及跨平台的Python实现Jython和IronPython。 Python提供了丰富的内置数据类型,比如数字、字符串、列表、字典、元组等。Python的基本语句包括变量赋值、函数调用...

    Python in a Nutshell

    模块是Python中组织代码的基本单位,可以包含函数、类、变量等,通过导入模块可以访问其内部的资源。 #### 7.2 模块加载 Python在首次导入模块时会执行其代码,并缓存模块对象,后续导入将直接使用缓存的对象,...

    Python面试宝典

    - 模块与包:了解如何导入和使用模块,以及创建和组织自定义包。 2. **Python进阶** - 类与对象:深入理解面向对象编程,包括类的定义、继承、多态和封装。 - 异常处理:学习try-except、finally和else子句,...

    Python Cookbook

    4.23 确保名字已经在给定模块中被定义 178 第5章 搜索和排序 180 引言 180 5.1 对字典排序 185 5.2 不区分大小写对字符串列表排序 185 5.3 根据对象的属性将对象列表排序 187 5.4 根据对应值将键或索引排序 ...

    PyPI 官网下载 | ryder-0.0.4-py3-none-any.whl

    在Python开发中,PyPI(Python Package Index)是官方的第三方Python软件包仓库,它为开发者提供了一个平台来发布他们的模块、库和其他工具,方便其他用户下载和安装。PyPI上的资源通常通过pip(Python的包管理器)...

    java的JDK(jdk-8u171-windows-x64)

    例如,通过Jython(一个Python的Java实现)可以在Java环境中运行Python代码,或者使用Java的`Jython`库调用Python模块。另外,Java应用可以通过`JDBC`连接Python的数据库驱动,实现数据交互。在自然语言处理领域,...

    PyPI 官网下载 | datelibrary_javis-0.0.1-py3-none-any.whl

    `.whl`文件包含了Python模块的编译代码,以及所有必要的依赖项,使得用户可以直接通过pip(Python的包管理工具)进行安装,而无需构建源码。 标签“Python库”表明`datelibrary_javis`是一个专门设计用于Python编程...

    PyPI 官网下载 | bugrest-1.0.0-py3-none-any.whl

    Python库是一系列预先编写好的函数或模块集合,它们可以被其他Python程序引用和使用,以增强程序的功能或简化编程任务。"bugrest"这个库可能是为了特定目的,如处理错误报告、调试或者与RESTful API交互等而设计的。...

    python3_9_5_doc.zip

    - 包管理:创建和导入自定义的模块和包,提高代码组织性。 5. **面向对象编程**: - 类(class):定义对象的蓝图,包含属性和方法。 - 对象实例化:基于类创建对象,可以继承和多态。 - 构造函数(__init__)...

    PyPI 官网下载 | CL_Utility_Library-0.2.0-py3-none-any.whl

    "none"意味着这个包不包含特定于实现的代码,也就是说,它不依赖于Python的特定实现,如CPython、Jython或PyPy。这样的设计使得该库具有更好的跨平台兼容性。 Wheel格式的优点在于它预编译了Python字节码,可以避免...

    python-3.7.0

    12. **增强的`__init__.py`**:在Python 3.7中,如果子包的`__init__.py`为空,Python将不再生成一个空的文件,而是自动识别该目录为一个包。 13. **`sys.implementation`**:此属性提供了关于Python实现的详细信息...

    java引用jpython的方法示例

    Java引用JPython是一种将Python代码嵌入到Java应用程序中的技术,允许Java程序调用Python库和执行Python脚本。在Java中使用JPython,我们需要引入Jython库,它是一个Python的实现,使得Java能够理解并运行Python代码...

    PyPI 官网下载 | crossref_commons-0.0.1-py3-none-any.whl

    PyPI是Python社区中最主要的第三方库分发平台,开发者可以将他们的Python模块或库上传到这里,供其他用户下载和安装。这个特定的包名为 "crossref_commons",版本号为0.0.1,是为Python 3设计的,因为文件名中的 "py...

Global site tag (gtag.js) - Google Analytics