__import__() 函数用于动态加载类和函数 。

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

语法

__import__ 语法:

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

参数说明:

name -- 模块名

英文文档:

__import__(name, globals=None, locals=None, fromlist=(), level=0)

getattr() 是 Python 内置的一个函数,可以用来获取一个对象的属性值或方法。

其基本语法为:getattr(object, name[, default])

其中,object 是要获取属性值或方法的对象;name 是要获取的属性名或方法名;default 是可选参数,当指定的属性或方法不存在时,会返回 default 的值。

getattr() 可以通过对象实例或类名来获取属性值或方法,也可以获取内置函数、内置类型和标准库中的属性和方法。

Example1

package_name = "sens.modules.app.{}".format(self.protocol)
package = __import__(package_name, fromlist=[self.protocol])
package.check(rule, self.data)

  

 

Example2

#index.py
print ('index')
 
def sayHello():
  print('sayHello ...')
  
 
class Cat():
    def __init__(self):
        print('cat init')
        
    def run(self,name):
        print("cat:{} , running".format(name))


#test.py

# coding:utf-8

mod = __import__("index")
mod.sayHello()

CatClass = getattr(mod,"Cat")
cat = CatClass()

methodRun = getattr(cat,'run')
methodRun("Tom")

__index__
sayHello ...
cat init
cat:Tom , running

  

 posted on 2023-08-16 16:57  boye169  阅读(116)  评论(0编辑  收藏  举报