封神纪2,酷6网电影,交换空间卧室装修
TOC
程序可以访问、检查和修改它本身的状态的行为的一种能力(自省) python中在面向对象中的反射:通过字符串的形式操作对象相关属性,就是通过字符串让对象自省自检是否有字符串表示的属性。python 反射提供hasattr/getattr/setattr/delattr
class People(object): def __init__(self, name, age): self.name = name self.age = age def speak(self): print('%s is speaking' % self.name) obj = People('孙悟空', 22) act = input('悟空:').strip() if hasattr(obj, act): getattr(obj, act)() func1 = getattr(obj, act) func1() else: print('{} can not {}'.format(obj.name, act))
class BlackMedium(object): feature = 'Ugly' def __init__(self, name, addr): self.name = name self.addr = addr def sell_house(self): print('%s 黑中介卖房子啦!' % self.name) def rent_house(self): print('%s 黑中介租房子啦' % self.name) sb = BlackMedium('傻逼', '美帝') # 判定是否有属性 print(hasattr(sb, 'sell_house')) print(hasattr(sb, 'rent_house')) print(hasattr(sb, 'test')) # 获取一个属性,并用一个变量引用,调用变量来执行 func1 = getattr(sb, 'sell_house', None) func1() func2 = getattr(sb, 'rent_house') func2() # func3 = getattr(sb, 'test') # func3() # 新增一个属性 setattr(sb, 'age', '100') print(sb.age) print(getattr(sb, 'age')) setattr(sb, 'talk', lambda self: print('来买房呀%s' % self.addr)) # 这个就不是绑定方法了 sb.talk(sb)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论