首页 > 其他 > 详细

030反射

时间:2018-01-23 21:36:17      阅读:294      评论:0      收藏:0      [点我收藏+]

###反射
## 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反射

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!