Python之路,Day21 = 反射、面向对象内置方法:如__str__、面向对象的软件开发

几个内置查看的方法使用

.__base__ 查看类的继承结构
.mro() 对象找属性的顺序存在里面

-----课程内容-----

---反射

hasattr(object, name)
getattr(object, name, default)
defult 找不到的时候,返回default
setattr(object, key, values)
delattr(object, key)

---面向对象内置方法

isinstance(obj, type) # 查看是不是它的实例issubclass(child, parent) # 查看是否为子类

__str__
打印对象的时候会触发 object.__str__() 这个方法,返回值必须是字符串
如 print(object)

__del__
对象销毁的时候执行这个函数下的内容,可以用来处理一些对象小时候的善后工作

__getitem__
f['name']

__setitem__
f['name'] = 'zhang'

__delitem__
del f['name']

 class Foo:
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
def __getitem__(self, item):
# print(self,item,type(item))
# return getattr(self,item)
return self.__dict__[item]
def __setitem__(self, key, value):
# setattr(self,key,value)
self.__dict__[key]=value def __delitem__(self, key):
# delattr(self,key)
self.__dict__.pop(key) def __len__(self):
return 10
f=Foo('egon',18,'male')
# print(f.name) #f['name']
# print(f.age) #f['age']
# print(f.sex) #f['sex'] # print(f['name']) # f['name']='egon_nb'
# print(f.__dict__)
# del f['name']
# print(f.__dict__) print(len(f))

最新文章

  1. CSS自动换行
  2. tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。
  3. 怎么进入BAT的研发部门?
  4. MongoDb gridfs-ngnix文件存储方案 - 图片
  5. div容器内文本对齐--神奇的css
  6. js获取星期几
  7. WCF服务发布到IIS时候,只能根据hostname访问,不能根据IP地址访问的解决办法
  8. Java Socket 编程指南
  9. [Head First Python]6. 定制数据对象:打包代码与数据
  10. ashx文件中使用session提示“未将对象引用设置到对象的实例”
  11. ⏰Day.js 2kB超轻量时间库 和Moment.js一样的API
  12. 【原】Java学习笔记033 - IO
  13. 面试 Linux 运维工作至少需要知道哪些知识?
  14. Complex类的实现
  15. AndroidStudio连不上Android设备真机
  16. YII2中查询生成器Query()的使用
  17. 多种数据库之间的同步工具SymmetricDS
  18. [Linux]运维三十六计--腾讯两位大神的总结
  19. C#发送邮件(使用SSL,587端口)
  20. How an event flows in a pipeline Netty Internal I/O Threads (Transport Implementation)

热门文章

  1. centos8 安装vmware需要的内核头文件 kernel-headers.
  2. VS项目种类GUID
  3. php基本,输出 ,变量
  4. tomcat部署安全证书文件(阿里云SSL证书)
  5. DELPHI 异常处理2
  6. lua之table|模块|包
  7. NX二次开发-创建圆弧(起点-终点-半径)UF_CURVE_create_arc_point_point_radius
  8. [JZOJ 100025] 棋盘
  9. Spring-Security (学习记录四)--配置权限过滤器,采用数据库方式获取权限
  10. 在WinDBG中查看函数的反汇编代码的命令