python中动态加载模块和类方法实现

python中动态加载模块和类方法实现测试代码

 

文件名: mytest.py 具体代码如下:

 

注意:模块名,类名,方法名都是变量。

 

#coding=UTF-8


class TestClass:
    def sub(self,a,b):
        return a-b
    def add(self,a,b):
        return a+b
    def echo(self):
        print "test"

def main():
    class_name = "TestClass" #类名
    module_name = "mytest"   #模块名
    method = "echo"          #方法名

    module = __import__(module_name) # import module
    print "#module:",module
    c = getattr(module,class_name)  
    print "#c:",c
    obj = c() # new class
    print "#obj:",obj
    print(obj)
    obj.echo()
    mtd = getattr(obj,method)
    print "#mtd:",mtd
    mtd() # call def
    
    mtd_add = getattr(obj,"add")
    t=mtd_add(1,2)
    print "#t:",t

    mtd_sub = getattr(obj,"sub")
    print mtd_sub(2,1)
    
  
    

if __name__ == '__main__':
   main()


执行后输出如下:

 

> "D:\Python27\python.exe"  "D:\test\src\mytest.py"
#module: <module 'mytest' from 'D:\test\src\mytest.py'>
#c: mytest.TestClass
#obj: <mytest.TestClass instance at 0x025F2AA8>
<mytest.TestClass instance at 0x025F2AA8>
test
#mtd: <bound method TestClass.echo of <mytest.TestClass instance at 0x025F2AA8>>
test
#t: 3
1

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值