python 导入自定义模块及使用

一、导入模块有三种情况:

按照导入时的顺序最好为:

1.python标准库模块

2.python第三方模块

3.应用程序自定义模块


二.自定义模块在调用的时候需要注意:

1.如果自定义模块与主程序在一个目录下,则可以直接import module。

2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。

3.如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:

(a)通过”import sys,sys.path.append('父目录的路径')“来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了;

(b)直接修改环境变量:在windows中是 “ set 变量=‘路径’  ” 例如:set PYTHONPATH=‘C:\test\...’ 查看是否设置成功用echo %PYTHONPATH%,而且进到python解释器中查看sys.path,会发现已经有了新增加的路径了。这 种方式是永久的,一次设置以后一直都有效。在linux中是 "export 变量=‘路径’ “,查看是" echo $变量 "

通过修改path是通用的方法,因为python解释器就是通过sys.path去一个地方一个地方的寻找模块的。


 三.import  module 和from module import 的区别

python导入模块的方法有两种:import module 和 from module import,区别是前者所有导入的东西使用时需加上模块名的限定,而后者不要。

更深层次的原因是:调用from-import可以将名字导入到当前的名称空间(也就是主程序的变量空间)中,这意味着你不需要使用属性/句点属性标识来访问模块的标识符。

例如:from module import var   #var是module中的一个属性

那么我们使用单个的var就可以访问他自身。

如果直接用import module 然后直接使用属性名访问,就会出现这样的错误:

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    s=Stack(20)
TypeError: 'module' object is not callable

当然你也可以将指定模块的所有名称导入到当前的名称空间中。

from module import * 

但是这不是推荐的编程风格,因为module中的某些名称可能会覆盖本来已经存在的名称,造成当前名称空间的污染。我们只在两种场合下使用这样的方法:1.目标模块的属性非常多,反复键入模块名很不方便,如socket模块;2.在交互结束器下,因为这样可以减少输入次数。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值