码迷,mamicode.com
首页 > 其他好文 > 详细

030反射

时间:2018-01-23 22:02:51      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:获取   分享   其他   技术分享   应用   sel   dict   color   div   

###反射
## getattr,hasattr,setattr,delattr,和类里面的字段有关,具体看例子

技术分享图片
#1
class  Person:
    def  __init__(self,name,age):
        self.name = name
        self.age = age
    def  show_lover(self):
        print(lover)
    
o = Person(x,21)
b = name
print(o.__dict__[b])

# 2 
b = input(>>>)
if  hasattr(o,b):
    v = getattr(o,b)        # 去什么东西里面获取什么内容   
    delattr(o,b)
    setattr(o,age,21)
print(v)
func=getattr(o,show_lover)   # 拿到方法
func()
View Code

# 3 拿到类对象的字段

class  Person:
    stat = 123
    def  __init__(self,name,age):
        self.name = name
        self.age = age

r = getattr(Person,stat)
print(r)

# 4拿到其他模块的函数和字段等

# s.py
NAME = _nbloser
def  func():
    returnfunc
class  Person:
    def  __init__(self):

self.name = _nbloser
# 执行.py
import s
r1 = getattr(s,NAME)
r2 = getattr(s,func)
Pers = getattr(s,Person)
p1 = Pers()
print(r1,r2(),p1.name)      # _nbloser   func   _nbloser

 

# 应用小例子

def  f1():
    return首页
def  f2():
    return新闻
def  f3():
    return精华

import  s
inp = input(>>)
if  hasattr(s,inp):
    func = getattr(s,inp)
    print(func())
else:
    print(404)

 

030反射

标签:获取   分享   其他   技术分享   应用   sel   dict   color   div   

原文地址:https://www.cnblogs.com/-nbloser/p/8337874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!