模块

包结构

建包首先建立一个文件夹,文件夹名即为包名,在文件夹中新建一个__init__.py文件,可以为空,也可以写入包的信息,然后在这个文件夹中新建py文件,之后如果要在外面引用该包内的模块,就直接import 模块名(包名为头),调用模块内部函数时,前面要加模块名。包的内部还可以建立文件夹,建立下一层的包,视代码结构而定。

 

Python文件名就是模块名,例如如下代码放在test0525.py文件中,因此该模块即为test0525

import sys
def test():
    args=sys.argv
    if len(args)==1:
        print('Hello world')
    elif len(args)==2:
        print('Hello,%s'% args[1])
    else:
        print('too many arguments')
if __name__=='__main__':
    test()

仔细研究上述代码,有助于理解命令行运行py文件的机制。

在py文件的路径下,命令行执行Python test0525 Kimi,这个时候,Python解释器会把特殊变量__name__赋值为__main__,因此Python解释器在解释时会判断if语句,从而执行test函数,而如果其他模块import test0525则不会执行test,因为__name__不等于__main__,需要调用test才可以执行,因此只有命令行sys模块有一个argv变量存储命令行的所有参数,至少有一个,第一个参数为该py文件的名称,而本例中有两个参数,第二个参数argv[1]是 'kimi'。

 

from import 与import的区别

form A import B:可以直接使用B,B可以是函数也可以是模块 ,A可以是模块也可以是包,而不需要写出完整的模块名

import B:需要使用完整的模块名

 

  

posted on 2017-05-25 23:29  vonkimi  阅读(121)  评论(0编辑  收藏  举报

导航