zoukankan      html  css  js  c++  java
  • Python全栈开发——类(反射)

    #反射(常用于可插拔方式)
    1.指程序可以访问。检测和修改它本身状态或行为的一种能力(自省)
    四个可以实现的函数
    1.判断object中有没有一个name字符串对应的方法或属性
    hasattr(object,name)  (常用于可插拔方式)(day26)(即调用另一个类方法还没完成,可用 hasattr  进行判断,

    与 if 结合,不影响其工作,后来也不用改代码)

    class BlackMedium:
        feture='Ugly'
        def __init__(self,name,addr):
            self.name=name
            self.addr=addr
    
        def sell_hourse(self):
            print('%s 在买房子' %self.name)
    
        def rent_hourse(self):
            print('%s 正在租房子' %self.name)
    b1=BlackMedium('那黄沫路','Beijing')
    
    print(hasattr(b1,'sell_hourse'))   # True
    
    print(getattr(b1,'rent_hourse'))
    #<bound method BlackMedium.rent_hourse of <__main__.BlackMedium object at 0x0044E870>>
    #没设第三个参数,  没有rent_hourse会报错
    print(getattr(b1,'dd','没有这个参数'))    #没有这个参
    
    setattr(b1,'sb','false')  #相当于 b1.sb=false
    print(b1.__dict__)  #{'name': '那黄沫路', 'addr': 'Beijing', 'sb': 'false'}
    
    delattr(b1,'sb')   #相当于  del b1.sb
    print(b1.__dict__) #{'name': '那黄沫路', 'addr': 'Beijing'}
  • 相关阅读:
    关于extern的用法
    建立CMenu菜单项,实现选中菜单项点击左键响应事件
    数据库常用语句
    圆周率的计算
    C++11中list特有版本的算法
    使用istream迭代器来输入输出数据
    C++中函数重载和函数覆盖的区别
    外置接口请求
    JSON转指定复杂对象
    FastDFS优化
  • 原文地址:https://www.cnblogs.com/lujiacheng-Python/p/9736171.html
Copyright © 2011-2022 走看看