1、任何以.py结尾的文件都是模块。每个导入的模块都有自己的命名空间,所以调用函数时,需要指定函数所在的的命名空间,否则会报错。

 def hi():
    print('hello world!')
###################

import A21
>>> hi()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hi()
NameError: name 'hi' is not defined
>>> A21.hi()
hello world!

 

2、模块导入的方式与区别。

  第一种:import  模块名。用着种方式导入模块时,每次调用导入的模块中的函数时,必须采用  模块名.函数名()的形式,而有时候模块名会比较长,所以这种方法会比较麻烦。

  第二种:from 模块名 import 函数名(*表示导入所有函数)。从模块中导入指定的函数(名),这种方式导入了指定函数的命名空间,调用时不用加模块名。注意:如果在不同模块中都相同名字的函数,而且同时用这种方法导入,就会因为名字混乱发生冲突。

  第三种:import 模块名 as 新名字。用简单的名字替代原来较长的名字,从而达到简化的效果。

 def hi():
    print('hello world!')
###################

import A21
>>> hi()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hi()
NameError: name 'hi' is not defined
>>> import A21 as A
>>>A.hi()
hello world!

 

3、if __name__ == '__main__'

  该语句在区分一个模块是作为主程序还是导入模块时起作用。即,

eg:

程序1-1:

def printl():
    print('12312')
    
def printn():
    print('232145')



def test():
    printl()
    printn()

if __name__ == '__main__':
    test()

程序1-2

import __main1__ as m

m.printl()
m.printn()

 

单独运行程序1-2,结果为:

12312
232145
>>> __name__
'__main__'
>>> m.__name__
'__main1__'
>>>

单独运行程序1-1,结果如下:

12312
232145
>>> __name__
'__main__'
>>>

 

 

如果不采用该方法,程序1-1变为2-1,其余程序不变,

程序 2-1

def printl():
    print('12312')
    
def printn():
    print('232145')



def test():
    printl()
    printn()

#if __name__ == '__main__':
#    test()

test()

运行,程序1-2,结果为:

12312
232145
12312
232145
>>> 

 

4、模块搜索路径·

  采用sys.path可以查看python模块导入时的搜索路径,搜索路径以列表的形式给出,所以要添加一个新的路径,采用append()方法添加新的路径即可。

  示例:__main1__.py位于D盘下,不在python的默认路径中。

import sys
>>> sys.path
['G:/0工作面试/学习记录/python', 'C:\\Users\\night_fall', ... 'F:\\python3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg']
>>> import __main1__
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    import __main1__
ImportError: No module named '__main1__'
>>> sys.path.append('D:\\')
>>> import __main1__
>>> sys.path
['G:/0工作面试/学习记录/python', 'C:\\Users\\night_fall', ..., 'F:\\python3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg', 'D:\\']

 

5、包的创建及使用

  1、创建一个文件夹,文件夹的名字就是包的名字,将相关的模块存放在该文件夹中。

  2、在文件夹中创建一个"__init__.py"的模块文件,该文件可以为空,但是必须得有。其作用是告诉pyhon将该文件夹当成一个包来管理。

  3、包的使用,导入模块时,在前面加上包名,即:import   包名.模块名