zoukankan      html  css  js  c++  java
  • 反射

    1.反射的基本函数

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

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class Foo(object):
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def talk(self):
            print 'i am alex%s'%self.name
    
    obj=Foo('alex',18)
    print Foo.__dict__
    # #### 检查是否含有成员 ####
    print hasattr(obj,'name')
    print hasattr(obj,'talk')
    print hasattr(obj,'aaa')
    # #### 获取成员 ####
    func=getattr(obj,'talk')
    func()
    print getattr(obj,'name')
    #以下不常用
    # #### 设置成员 ####
    setattr(obj, 'age', 18)
    setattr(obj, 'show', lambda num: num + 1)
    # #### 删除成员 ####
    delattr(obj, 'name')
    delattr(obj, 'func')

    2.动态加载模块,并获取方法

    index文件

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    control,action=raw_input('请输入需要执行的函数:').split('/')
    
    #动态加载模块
    modules=__import__(control)
    #判断需要加载的方法是否存在
    if hasattr(modules,action):
        #获取方法
        func=getattr(modules,action)
        #执行方法
        print func()
    else:
        #方法不存在,返回404错误
        print '404 error'

    home文件

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    def func1():
        return 'this is func1'
    
    def func2():
        return 'this is func2'
    
    def func3():
        return 'this is func3'
  • 相关阅读:
    Redis 集群方案
    Redis集群搭建
    Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
    为什么分布式一定要有Redis?
    如何准备Java初级和高级的技术面试
    SpringBoot自动配置原理
    高德地图-- 云图管理台
    GeoJSON格式规范说明
    webGis概念
    npm压缩js文件
  • 原文地址:https://www.cnblogs.com/yanhongjun/p/5297419.html
Copyright © 2011-2022 走看看