python模块和包

模块概念

一个.py文件就是模块。

优点

方便组织代码

提高代码的维护性

模块分类

python标准库

第三方模块

应用程序自定义模块

模块调用

调用的原理:通过搜索路径,找到模块的文件,将模块里面所有的代码解释后,将解释后的对象给导入的模块,我们再通过模块调用模块里面的各种方法。

import 模块1, 模块2...

from 模块 import 方法

from 模块 import *  # 此方法不推荐使用

from 模块 import 方法 as 新名字

只要建立包,包目录下面必须有__init__.py文件,包是用来组织模块的,模块是用来组织函数的。

调用

包在import package的时候,只会解释__init__.py文件,其它的模块不会被解释。

import package.module

package.module.method()

 

from package import module

module.method()

 

from package1.package2[.module] import module

module.method()

 

禁止使用

import package1.package2.method

设计好的目录结构

目录结构的优点

1、可读性高。

2、可维护性高。

目录组织方式

Foo/

|-- bin/  存放项目的一些可执行文件,当然你可以起名script/之类的也行。
| |-- foo
|
|-- foo/  存放项目的所有源代码。源代码中的所有模块、包都应该放在此目录,不要置于顶层目录;其子目录tests/存放单元测试代码; 程序的入口最好命名为main.py
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/  存放一些文档。
| |-- conf.py
| |-- abc.rst
|
|-- setup.py  安装、部署、打包的脚本。
|-- requirements.txt  存放软件依赖的外部Python包列表。
|-- README  项目说明文件。

部分测试代码

import os,sys

print(sys.path)  # 返回当前系统环境变量,对象为列表类型,元素为字符串

print(__file__)  # 返回当前文件的相对路径

print(os.path.abs.path(__file__))  # 返回当前文件的绝对路径

print(os.path.dirname(os.path.abspath(__file__)))   # 返回上级的目录名

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #返回上级的上级目录名

sys.path.append(BASE_DIR) #找到

思路来源

老男孩全栈开发

posted on 2018-04-09 08:13  Artisan正传  阅读(75)  评论(0)    收藏  举报