专栏首页大猪的笔记python笔记:反射

python笔记:反射

在python中,可以使用很简单的用内置函数__import__来实现“反射”。

参考代码如下:

    module = __import__("cacl.add", fromlist=True)

    abs_args_method = getattr(module, 'abs_args')
    add_method = getattr(module, 'add')

当然,还有更简单粗暴的方法:

exec('print("haha")')

对于类可以这么处理:

import types

_method = {
    "say_hello":["test1", "SayHello"]
}
    
class Test(object):
    def __init__(self):
        self.base_char = "yzh"
        for key, item in _method.items():
            module = __import__(item[0],fromlist=True)
            module_class = getattr(module, item[1])
            class_obj = module_class(self.base_char)
            self.__dict__[key] = class_obj.do_it

test = Test()
test.say_hello("ha")

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小工具:同步系统时间

    超级大猪
  • sanic(2):创建handler

    上文说到已经创建了app,但是此时的项目里只有两个光秃秃的文件。要完成一个完整的网站,还需要在上面添加handler和templates。

    超级大猪
  • 对django网站使用证书

    gunicorn --bind=0.0.0.0:8000 dazhu.wsgi:application

    超级大猪
  • 走进Java接口测试之读取配置文件

    但在大部分用例开发环境下,添加额外配置是无所避免的,比如自定义应用端口号、服务地址、数据库的配置等,都或多或少的需要一些外部的配置项等。

    高楼Zee
  • java练习本(原每日一练)(2019-04-18)

    “Love yourself first and everything else falls into line. You really have to lov...

    微笑的小小刀
  • JVM系列第13讲:JVM参数之追踪类信息

    我们都知道 JVM 在启动的时候会去加载类信息,那么我们怎么得知他加载了哪些类,又卸载了哪些类呢?我们这一节就来介绍四个 JVM 参数,使用它们我们就可以清晰地...

    陈树义
  • MySQL统计信息相关表介绍

    以前给大家介绍过MySQL中的统计信息,相信大家也都了解了。那么统计信息是存放在哪里呢?我们怎么去查看? 在MySQL中提供了两个表记录统计信息的相关内容,分别...

    沃趣科技
  • 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第三节)

    剽悍一小兔
  • Emacs 显示行数

    2  复制 linum.el 到“/usr/share/emacs/site-lisp/”或者其他 load-path路径下

    阳光岛主
  • 专栏 | 深思考:实现人机多轮交互突破是攻克图灵测试的核心

    机器之心专栏 作者:杨志明、王泳、毛金涛 本文作者是中科院 NLP 博士,深思考人工智能机器人科技 ideepwise 的首席架构师/CEO 杨志明博士,首席...

    机器之心

扫码关注云+社区

领取腾讯云代金券