python 模块 包
2015-10-11 14:18
585 查看
模块是用来组织python代码的方法,包是用来组织模块的。
这样的语句会导入哪些文件取决于操作系统的文件系统。所以我们在
Python允许通过在模块或包名称前置句点实现相对导入。
语法的第一个部分是一个句点,指示一个相对的导入操作。
在Phone.Mobile.Digital,也就是Digital模块中,不能用下面的语法:
这是绝对导入的限制造成的,你需要在使用绝对导入或者相对导入中作出选择。
相对导入如:
2.阻止属性导入:如果不想某个模块属性被 from module import * 导入,那么可以给不想导入的属性名称加一个下划线(_ ),不过如果导入了整个模块或是显式的导入某个属性(如import foo._bar),隐藏数据的方法就不起作用了。
3.不区分大小写的导入
Phone/ __init__.py common_util.py Voicedta/ __init__.py Pots.py Isdn.py Fax/ __init__.py G3.py Mobile/ __init__.py Analog.py Digital.py Paper/ __init__.py Numeric.py 导入: import Phone.Mobile.Analog Phone.Mobile.Analog.dial() from Phone import Mobile Mobile.Analog.dial('555-1212') from Phone.Mobile import Analog Analog.dial('555-1212') 事实上,可以一直沿子包的树状结构导入: from Phone.Mobile.Analog import dial dial('555-1212') __init__.py是初始化模块,from-import语句导入子包时需要用到它。如果没有用到,它们可以是空文件
1. 使用from-import导入包
from package.module import *这样的语句会导入哪些文件取决于操作系统的文件系统。所以我们在
__init__.py中加入__all__变量,该变量包含执行这样的语句时应该导入的模块的名字,它由一个模块名字符串列表组成。
Python允许通过在模块或包名称前置句点实现相对导入。
相对导入
import语句总是绝对导入的,所以相对导入只应用于from-import语句。语法的第一个部分是一个句点,指示一个相对的导入操作。
在Phone.Mobile.Digital,也就是Digital模块中,不能用下面的语法:
import Analog from Analog import dial
这是绝对导入的限制造成的,你需要在使用绝对导入或者相对导入中作出选择。
相对导入如:
from Phone.Mobile.Analog import dial from .Analog import dial #一个句点代表相对导入 from ..common_util import setup #2个句点代表上一级目录- from ..Fax import G3.dial
2.模块的其他特性
1.自动载入的模块2.阻止属性导入:如果不想某个模块属性被 from module import * 导入,那么可以给不想导入的属性名称加一个下划线(_ ),不过如果导入了整个模块或是显式的导入某个属性(如import foo._bar),隐藏数据的方法就不起作用了。
3.不区分大小写的导入
3. 源代码编码
#!/usr/bin/env python # -*- coding: utf-8 -*-
相关文章推荐
- 有关Python的内容
- leetcode-Count Primes 以及python的小特性
- python 环境的配置和pip 的安装
- Python 基础语法(二)
- Python Scapy(2.3.1)文档学习(五):构建自己的工具
- python开发_常用的python模块及安装方法
- Python 基础语法(一)
- 3.3.8 使用difflib.ndiff函数
- leetcode之H-index II
- 开始学习Python了,每天都要有进步啊
- Python获取两个日期间的所有日期
- python学习笔记2---关键元素2
- python ip反查域名
- 你该了解的10个 Python 模块
- 11个你可能不知道的Python库
- 教你用200行Python代码“换脸”
- 12步轻松搞定Python装饰器
- python之字符串
- Python实践之(七)逻辑回归(Logistic Regression)
- Python编程中常用的12种基础知识总结