码迷,mamicode.com
首页 > 其他好文 > 详细

import和 __import__

时间:2020-02-05 23:05:44      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:rom   attribute   tee   接受   src   函数   recent   str   ror   

1. import导入的是一个标准模块,而标准模块的概念是一个文件夹里面必须包含__init__.py文件。它的作用更像是一种声明,且import模块进来之后,万一原本的模块有什么变化,可以通过reload()进行重新加载。

__import__()作为一个函数,只能接受字符串参数,返回值可以直接用来操作,通常在动态加载的时候用到这个函数,最常见的情景就是插件功能的支持。

 

__import__() 函数用于动态加载类和函数 ------- 使用__import__和 getattr,setattr可以实现动态加载类和方法

如果一个模块经常变化就可以使用 __import__() 来动态载入。

__import__(name[, globals[, locals[, fromlist[, level]]]])

参数说明:

  • name -- 模块名
  • 返回值

返回元组列表

 

 技术图片

 

 

 

 

2. getattr() 函数用于返回一个对象属性值。

getattr(object, name[, default])

  • object -- 对象。
  • name -- 字符串,对象属性。
  • default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

例如:

  • >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, ‘bar‘) # 获取属性 bar  1 >>> getattr(a, ‘bar2‘) # 属性 bar2 不存在,触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: ‘A‘ object has no attribute ‘bar2‘ >>> getattr(a, ‘bar2‘, 3) # 属性 bar2 不存在,但设置了默认值 3

 

import和 __import__

标签:rom   attribute   tee   接受   src   函数   recent   str   ror   

原文地址:https://www.cnblogs.com/wenshu/p/12267070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!