Python之导入package、及导入package中的module、package中的module的class或funcation

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/86301430

0、总结就要总结的到位,虽然总结过,有输入,要就要有输出,你瞧不起我,我要告诉你,我就是牛,先看下基础理论

当你import的时候,python解释器只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package或module

>>> import sys
>>> print sys.path

而一个package跟一个普通文件夹的区别在于,package的文件夹中多了一个__init__.py文件。换句话说,如果你在某个文件夹中添加了一个__init__.py文件,则python就认为这个文件夹是一个python中的package。(大写的牛x)

__init__.py文件的内容可以是空的(package里面必备这个模块,.py的文件就是模块,这个知识点要知道),它只是告诉python当前文件夹是一个python中的package。当然,你可以在这个module里面添加一些代码,这些代码会在import这个package的时候运行,也就是package下__init__.py模块,会在import package后,立刻会从无缩进的地方开始执行代码嘛

所以,请确保你要import的py文件所在的目录有__init__.py文件(除非它在sys.path中某个文件夹下)

1 、导入一个package,在python世界中,package里面会有一个或多个module

import unittest

2、导入package中的某一个模块,case是unittest包下的一个模块

from unittest import case

3、导入package中的某一个模块的一个属性,TestCase是unittest包下的case模块下的一个class

from unittest import TestCase

3-1、导入package中某一个module的一个属性(这次是函数),removeResult是unittest包下的signals.py模块的一个函数

from unittest import removeResult


4、导入package中,__init__.py文件中的指定的内容,我们继续往下看,在每个package下,一定会有一个__init__.py文件

第一个作用:表示当前目录为python的package

第二个作用:模块下当然可以写代码,其中比如__all__ ,一个全局变量,是一个list,里面指定要导入的module、funcation

图示中是unittest包下的__init__.py文件的__all__全局变量

__all__ = ['TestResult', 'TestCase', 'TestSuite',
           'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
           'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless',
           'expectedFailure', 'TextTestResult', 'installHandler',
           'registerResult', 'removeResult', 'removeHandler']
from unittest import * #其中*代表的就是__all__中的内容

5、包的子包下的class

from PageObject.Home.FirstOpenPage import FirstOpenPage

从PageObject包下的Home包下的FirstOpenPage模块下导入一个FirstOpenPage的类

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/86301430