从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本文实例讲述了Python面向对象之类的内置attr属性。分享给大家供大家参考,具体如下:
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站设计、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的芜湖网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!这个比较简单。
代码示例:
# -*- coding:utf-8 -*- #! python3 class Foo: x = 1; def __init__(self,y): self.y = y; def __getattr__(self,item): print('----->from getattr:你找的属性不存在') def __setattr__(self, key, value): print('----> from setattr') #self.key = value # 正常思维设置,但是只要设置属性就会触发这个方法,从而进入死递归, # 所以考虑从字典的属性入手修改属性值。 self.__dict__[key] = value def __delattr__(self,item): print('----->from delattr') #del self.item #这个也是同样的道理,会进入死递归 self.__dict__.pop(item) #_setattr_添加/修改属性会触发它的执行 f1 = Foo(10) print(f1.__dict__) #因为你重写了__setattr__,凡是赋值操作都会触发它的运行,你啥都没写,就是根本没赋值 #除非你直接操作属性字典,否则无法赋值 f1.z = 3 print(f1.__dict__) #__delattr__删除属性的时候会触发 f1.__dict__['a'] = 3 #可以直接修改对象的属性字典,来完成添加/修改属性的操作 del f1.a print(f1.__dict__)
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图