Python模块导入之import和__init__.py

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文件。
Python模块导入之import和__init__.py_第1张图片
a.py文件的内容为:

print("This is alpha!")

在文件夹mypackage同级创建test.py并输入:

from mypackage.alpha import a

则输出为:

This is alpha!

你可能感兴趣的:(编程)