[关闭]
@zhengyuhong 2016-08-15T01:43:53.000000Z 字数 578 阅读 1574

Python反射(自省)

wiki Python


import

import与__import__

import:导入一个python模块,其中包括.py文件、带有init.py文件的目录;
__import__作用:与import语句具有同样的功能,但__import__是一个函数,并且只接收字符串作为参数,而import语句底层也是调用这个函数进行导入工作的,import sys <==>sys = __import__('sys')。

sys.path指定用于模块搜索路径的字符串列表,它根据环境变量PYTHONPATH进行初始化,再加上安装时的默认值。

将模块所在目录加入的sys.path后,即可直接使用模块名来导入模块。

  1. import sys
  2. sys.path.append(mymodule_path) #导入mymodule所在路径
  3. m = __import__('mymodule')

但是这个会造成模块空间的混乱,每一个模块都往sys.path塞路径,会有模块重名,然后导入有歧义性。

  1. import sys
  2. sys.path.insert(0, mymodule_path) #导入mymodule所在路径,且让其最优先搜索
  3. m = __import__('mymodule')
  4. sys.path.pop(0) #导入后将路径移除,防止模块空间混乱。

hasattr

getattr

setattr

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注