1.基础概念理解
首先,python里有包和模块,对应到我们熟知的windows系统里来,就是文件夹与py文件,也即python的包是一个文件夹,但这个文件夹下必须要有一个__init__.py的文件,而python的模块对应的是一个py文件,这个也很好理解。
2.区分python2、3
之前大都使用python2版本来开发,以后慢慢的python2就不维护了,我们都会迁移到3,python2和3在包的导入上也是有区别的,建议初学者最好以python3的标准来。
为了方便解释,我们画一个项目的结构图
project
|----__init__.py
|----main.py 主入口文件
|----util.py 公共函数,与入口函数同级别目录
|----A 文件夹A,与入口函数同级别目录,下含两个py文件
|----__init__.py
|----parse.py
|----stat.py
一般python可识别可接受的模块导入有这么几种:
需要注意的是,如果一个包下的模块要被别的文件导入,这个包也即文件夹下必须要有__init__.py文件
3.一些小技巧
1.dir
我们在面对一个新的python模块的时候,不知道怎么用它的方法,可以通过dir(模块名),查看所有的方法
2.你应该知道的__name__内置变量
在python里,每一文件里的变量,无论是什么类型的,要么是自己定义的,要么是从别的模块导入的,它们都有来源,但有些是例外,那就是内置变量,他们不需要我们定义,准确的说,这个是被python内部定义过的变量,不在需要我们显示的定义了。
我们这里提一个重要的内置变量__name__,大家肯定经常用,我们在运行主函数的时候,一定会写if __name__ == ‘__main__‘: 然后做一些操作,那么为什么这么写 呢?首先,__name__是一个python的内置变量,每一个模块,也就是每一个py文件都会有自己的这个内置变量,它代表的值是相对路径,谁和谁的相对路径呢?q.py文件导入了w.py(模块)的某个函数的时候,w模块的__name__值就是w.py文件相对于q.py文件的路径,而直接被python执行的q.py文件的__name__值是多少呢,就是‘__main__‘,这也是为什么用if __name__ == ‘__main__‘:这段代码,而在q.py文件被别的包调用时候,它的__name__也就同样是一个相对路径了。
原文:https://www.cnblogs.com/wsjgdxx/p/12006271.html