wl413911

python---模块化

 

相对路径:

绝对路径:

 

一个python文件,在运行时都会有一个运行时位置,最开始 即为 文件所在的文件夹,sys.path.append("..") 可以将当前python解释器的位置 设置为上一层目录

 

在大型工程中,固定一个确定的路径(绝对位置)是十分必要的(一般相对路径是个很不好的选择),因为代码会迁移,相对路径容易造成错误

 

一个独立的项目,所有模块的追寻方式,最好从根目录开始,这叫相对的绝对路径

 

在pycham中构建python项目,pycharm会将sys.path 列表的第一个元素设置为空字符串,代表项目根目录的绝对位置。

 

python的虚拟运行环境:

  通过virtualenv 工具,很方便的创建一个全新的python运行工环境

  对于每一个项目来说,最好有一个独立的运行环境,保证包和模块的纯净性

  在虚拟运行环境里,有一个文件activate,用于激活运行时环境,可以通过在该文件末尾添加 export PYTHONPATH="你想添加的目录,比如项目的根目录",添加环境的搜索路径中(适用于linux系统,不适用于win系统)

 

python 是脚本语言,和java不同 ,并不需要提供显示的main()函数入口

 

那么 if __name__ == "__main__"可以带来什么好处呢?

  1、python在导入文件的时候,会自动将暴露在外面的代码全部执行一遍,在导入模块时会带来问题,执行一些不需要执行的代码

  2、在模块(python文件)中,没有封装,但是在被import时,又不需要被执行的代码,要封装在 if __name__== "__main__"下面,来避开import时执行

  3、原理,__name__是python的魔术内置参数,是模块对象的一个属性;在import导入模块时,__name__会被赋值为该模块的名字,自然就不等于__main__

 

 

from module_name import * 会把module中所有的函数和类都拿过来,如果和其他函数名、类型名称相同,会发生冲突

 

import module_name 直接导入模块名,通过module_name.class_name(或者.function_name)来使用内部的类和函数,可以防止出现名称 冲突的问题

 

在项目中的文件夹下加入__init__.py文件,表示项目对外暴露的接口,这种方式是python2 的标准方式;在python3中可以不用写__init__.py文件

 

多个import 同一个模块,模块中的语句只会被执行一次,可以防止重复导入引起的错误(模块种语句的多次执行)

 

代码规范:非特殊情况,所有的import语句都写在文件的顶部

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-05-29 18:16  wl413911  阅读(132)  评论(0编辑  收藏  举报