python提供了和java类似的包和模块的引用,目的也是为了提高代码的复用性,这里主要总结一下包和模块的引入问题
python的包和模块引入和Java遵循类似的规则,在PYTHONPATH指定的路径找,
1,引入系统模块
在python中,python的系统模块可以直接引用,因为在装python环境的时候已经指定了相对应的路径,如引用 :
import string
2,引入自定义的模块
在自定义自定义模块的时候,如果引入当前目录的模块的时候是不需要加入特殊的约束的,直接import即可,如 当前在test1.py ,test2.py和test1.py在一个目录下,所以直接 import test2即可
3,注意python在引入包的时候的顺序,首先是去当前目录下寻找有没有指定的.py文件或者.pyc文件,其中.pyc文件是python文件编译后的文件,因此即使删除了.py文件仍然可以通过pyc文件找到指定的模块,这些都找不到后就会去系统的PYTHONPATH下面找相对应的模块(内置模块)
3,引入指定包的函数
有几种方法可以指定,如果 test2.py 是如下结构,test1.py和test2.py是在同一个目录下
def add(x,y): return x+y def mul(x,y): return x*y
那么在test1.py中可以这么引入:
##import caculator ##print caculator.add(2,3) ##from caculator import add ##print add(2,3) import caculator as cal print cal.add(2,3)
以上三种方式都可以,其中第三种方式是为包取一个别名
4,引入包
包的引入和模块的引入差不多,每个包下面需要加一个__init__.py文件,当然其操作的也是需要在当前的目录下
比如我现在的test3.py同级目录下有一个package包,package包下面有一个person.py,其定义如下
def mod(x,y): return x%y
那么引用的时候就是需要
import package.person
使用和引入模块差不多用法,如下面两种方法
import package.person print package.person.mod(10,3) from package.person import mod print mod(10,3)
5,下面重点来了,如何引入非当前目录的包或者模块呢?这就需要在系统的PYTHONPATH路径中指定相对应的目录,注意,需要指定当前的目录路径即可,例如,如果是包的话只需指定包所在的路径即可,如果是模块的话则指定模块的路径
首先在E:\programming practice目录下定义一个module1.py文件
def add(x,y): return x+y;
然后再E:\programming practice\python practice目录下建立一个testModule1.py,代码如下
# -*- coding: cp936 -*- #当前目录是E:\programming practice\python practice import sys sys.path.append("E:\programming practice") from module1 import add print add(3,4)
上面的sys.path.append("E:\programming practice")是重点,其实这个是在系统的PYTHONPATH中加入当前的目录,供调用该模块的程序加载
over
相关推荐
Python还支持复数运算,通过引入`cmath`模块,可以处理复数的计算,例如`cmath.sqrt(-1)`将得到虚数1j。Python 2.x和3.x是两个独立的版本,有着显著的区别,例如3.x版本不再支持print作为语句而是函数,同时增加了...
这份"Python学习笔记"压缩包文件,无疑是为那些正在探索Python世界的新手们量身打造的学习资源。 首先,Python的核心概念包括变量、数据类型和控制结构。变量是存储数据的容器,可以是整数、浮点数、字符串或布尔值...
这些文件可能涵盖了Python的基础语法、数据结构(如列表、元组、字典和集合)、控制流(条件语句、循环)、函数定义和调用、模块导入、错误和异常处理,甚至是面向对象编程的概念。 1. **基础语法**:Python的基础...
这一章还涉及了程序员对Python的看法,以及Python 3.0的重要更新,它是Python语言的一个重大升级,引入了许多改进和新特性。 第三章介绍了如何在不同的操作系统上安装Python。对于Linux和BSD用户,通常可以通过包...
尽管有人提出可以用字典模拟 `switch` 语句,但这可能引入不必要的开销,影响代码的可读性和性能。 #### 六、for 循环遍历序列 在 Python 中,可以通过 `for` 循环直接访问可迭代对象的各个元素。如果需要同时获取...
学习Python时,理解变量类型、控制流(if-else,for,while)、函数定义和模块导入是基础,而深入学习则可能涉及类与对象、异常处理、装饰器和生成器等高级概念。 2. Java:Java是一种面向对象的、跨平台的编程语言...
2. **包管理**:Go语言采用模块化设计,通过`import`关键字引入其他包。Go标准库提供了丰富的功能,如网络、文件操作、并发等。`go mod`是Go的官方模块管理系统,用于版本管理和依赖关系。 3. **类型系统**:Go语言...
5. **模块和包的导入**:使用import语句引入Python标准库或其他第三方库,如numpy、pandas等进行数据分析。 6. **面向对象编程**:类的定义、对象的创建、继承、封装、多态等概念。 7. **单元测试**:使用unittest...