Python基础语法 - 反射

通过字符串的形式操作对象中的成员(一切皆为对象

  getattr

  hasattr

  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')
View Code

 示例

---------s2模块---------
def f1():
    print('首页')

def f2():
    print('新闻')

def f3():
    print('精华')
------------------------

import s2

inp = input()

if hasattr(s2,inp):
    func = getattr(s2,inp)
    result = func()
    print(result)
else:
    print('404')

 

posted @ 2018-03-26 10:28  皮蛋小顽童  阅读(92)  评论(0编辑  收藏  举报