1、import和from…improt
1.1、
- import :导入一个模块,(相当于导入的是一个文件夹,是个相对路径);
- from…import:导入了一个模块中的一个函数(相当于导入的是一个文件夹中的文件,是个绝对路径)。
1.2、使用方法与差异
example模块:
example.py
:
def print_func( val ):
print "Hello : ", val
return
- 1)import引入一个模块后,使用时需要包括模块名,有些类似C++里实例化后调用函数。使用 import 引入并调用 example模块的正确方法:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#导入模块
import example
#现在可以调用模块里包含的函数了
example.print_func(" World ")#使用模块时,需包括模块名
2)使用 from … import 模块的正确方法:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入模块
from example import print_func
# 现在可以调用模块里包含的函数了
print_func("World")#不需要包括模块名
PS:一般来说,不建议使用from ... import *
,这样会导致命名空间混乱,同时使得代码可阅读性下降。使用from ... import
能够比较清晰看到引用了模块的什么方法。
1.3、几种导入方式
#主要包括以下几种导入方式:
1、import moduels(模块名字)
#导入整个模块,这种导入方式比较占用内存
2、import moduels (模块名字) as XX
#这里是导入整个模块的同时给它取一个别名,因为有些模块名字比较长,用一个缩写的别名代替在下次用到它时就比较方便
3、from modules(模块名字) import func(方法)
#从一个模块里导入方法,你要用到模块里的什么方法就从那个模块里导入那个方法,这样占用的内存就比较少
也可以用别名表示 :from modules(模块名字) import func(方法)as XX
4、from package.modules import func(方法)
#从一个包的模块里导入方法 这个方法跟上面那种基本一样,占用的内存也比较少
也可以用别名表示,from modules(模块名字) import func(方法)as XX
2、__init__.py
#TODO
假设工程目录如下图,且每一个文件夹下都有一个__init__.py
文件。
a.py
文件的内容为:
print("This is alpha!")
在文件夹mypackage
同级创建test.py
并输入:
from mypackage.alpha import a
则输出为:
This is alpha!