欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python-反射机制

程序员文章站 2022-03-25 16:25:18
一、python-反射机制 目录 1、反射基本方法 2、反射demo 二、 1、hasattr(obj,name_str) #判断一个对象obj里是否有对应的字符串的方法 getattr(obj,name_str) #根据字符串去获取obj对象里的对应的内存地址,字符串是 变量则返回值 setatt ......

一、python-反射机制

  目录

    1、反射基本方法

    2、反射demo

二、

  1、hasattr(obj,name_str)   #判断一个对象obj里是否有对应的字符串的方法

   getattr(obj,name_str)   #根据字符串去获取obj对象里的对应的内存地址,字符串是 变量则返回值

  setattr(obj,'y','z')  #根据字符串设置属性(方法,变量)
   delattr(obj,name_str) 删除

 2、demo
class dog(object):
    def __init__(self,name):
        self.name=name

    def eat(self,food):
        print('%s 开始吃'%self.name,food)

def bulk(self):
    print('1233 %s' %self.name)

d=dog('李富贵')

chaer=input('输入:').strip()

if hasattr(d,chaer):
    #func=getattr(d,chaer)
    #func('包子')
    setattr(d,chaer,'雷')  #修改原来变量的内容
    print(getattr(d, chaer))

    delattr(d,chaer)  #删除
    print(d.name)
else:
    setattr(d,chaer,bulk)  #添加新方法,返回内存地址
    func=getattr(d,chaer)
    func(d)
    # setattr(d, chaer, 22)  #添加新变量,返回值
    # print(getattr(d,chaer))