• day18-2 反射详解



    #
    反射:通过字符串映射或修改程序运行时的状态,属性。或者方法 class Dog(object): def __init__(self,name): self.name = name def eat(self,food): print("%s is eating...%s" %(self.name,food)) d = Dog("abc") choice = input(">>:").strip() if hasattr(d,choice): func = getattr(d,choice) func('蛋糕') # hasattr(obj,name_str), 判断一个对象obj里面是否含有对应的name_str字符串的方法 #getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址 # >>:eat # abc is eating...蛋糕

    2.

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

    #getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址
    #setattr(obj,'y',z) 相当于x.y = v
    #delattr(d,choice) 删除对象对应字符串的属性

    3.
    # 反射:通过字符串映射或修改程序运行时的状态,属性。或者方法
    def bulk(self):
        print("%s is bulking..." % self.name)
    
    class Dog(object):
    
        def __init__(self,name):
            self.name = name
    
        def eat(self,food):
            print("%s is eating...%s" %(self.name,food))
    
    d = Dog("abc")
    choice = input(">>:").strip()
    print(hasattr(d,choice))
    if hasattr(d,choice):
        delattr(d,choice)
        # func = getattr(d,choice)
        # func('蛋糕')
    else:
        # setattr(d,choice,bulk)
        # d.talk(d)
        setattr(d,choice,22)
        print(getattr(d,choice))
    print(d,name)
    # hasattr(obj,name_str), 判断一个对象obj里面是否含有对应的name_str字符串的方法
    #getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址
    #setattr(obj,'y',z) 相当于x.y = v
    #delattr(d,choice) 删除对象对应字符串的属性
     
  • 相关阅读:
    音频播放器
    SQL Server找不到配置管理器怎么办
    SQL——游标循环的写法
    SQL——多条相似内容只取一条
    SQL——delete left join
    SQL——查询包含某字段的所有表
    SQL——获取数据库表结构
    SQL Server数据库改名
    SQL——left join的结果行数可能大于左表
    SQL——用临时表代替过多的变量声明赋值
  • 原文地址:https://www.cnblogs.com/yfjly/p/9863538.html
Copyright © 2020-2023  润新知