zoukankan      html  css  js  c++  java
  • 反射的基本介绍

    反射:通过字符串的形式导入模块,通过字符串的形式去模块中寻找指定函数、字段、全局变量等

    根据用户输入的内容导入模块

     由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。

    class Foo(object):

     
        def __init__(self):
            self.name = 'wupeiqi'
     
        def func(self):
            return 'func'
     
    obj = Foo()
     
    # #### 检查是否含有成员 ####
    hasattr(obj, 'name')
    hasattr(obj, 'func')
     
    # #### 获取成员 ####
    getattr(obj, 'name')
    getattr(obj, 'func')
     
    # #### 设置成员 ####
    setattr(obj, 'age'18)
    setattr(obj, 'show'lambda num: num + 1)
     
    # #### 删除成员 ####
    delattr(obj, 'name')
    delattr(obj, 'func')
     
    ===============================
    from lib import account
    #模块名/函数名
    #account/login
    url = input('请输入URl:')
    target_module, target_func = url.split('/')
    m = __import__("lib" +targrt_module, fromlist=True)
     
    if hasattr(account,inp):
      target_func = getattr(account,inp)
      r = target_func()
      print(r)
    else:
      print('404')
     
     
  • 相关阅读:
    sqlserver计算时间差DATEDIFF 函数
    C# join 子句(C# 参考)
    C# join 子句(C# 参考)
    MongoDB 监控备份工具MMS
    MongoDB 监控备份工具MMS
    mongodb$slice (aggregation)
    mongodb$slice (aggregation)
    1004:字符三角形
    1004:字符三角形
    1003:对齐输出
  • 原文地址:https://www.cnblogs.com/huangguabushihaogua/p/9407816.html
Copyright © 2011-2022 走看看