所学内容

反射

1、hasattr ( 判断一个属性在对象里有没有 ) -------------------- 【对象,字符串属性】本质是:# 判断 ' name ' in obj.__dict__

2、getattr ( 获取对象中字符串的属性 ) --------------------------- 【对象,第三参数,字符串属性】本质是:# 从一个字典 obj.__dict__ [ ' name ' ]

3、setattr ( 一个属性的赋值操作 ( 设置值,修改值 ) )---------【对象,属性,值】setattr  本质是:# obj.__dict__ [ ' FFY ' ]

4、delattr ( 删除属性操作 ) ------------------------------------------ 【删除属性】delattr 本质是:# 通过字符串来操作字典,但不要直接操作字典

内置方法

__str__ :在对象被打印时自动触发,可以用来定义对象被打印的输出信息(注意:必须返回一个字符串类型的值)

__del__ :在对象被删除时先自动触发该方法,可以用来回收对象以外其他相关资源

isinstance与ssubclass

isinstance(对象,类)--------------------- 判断一个对象是否是一个类的实例

issubclass(子类,父类)------------------ 判断一个类是否是另一个类的子类

反射的用法

 class Ftp:
def get(self):
print('get') def put(self):
print('put') def login(self):
print('login') def run(self):
while True:
cmd = input('>>>: ').strip() # cmd='get'
if hasattr(self, cmd):
method = getattr(self, cmd)
method()
else:
print('输入的方法不存在') obj = Ftp()
obj.run()

内置的用法

__str__ :在对象被打印时自动触发,可以用来定义对象被打印的输出信息(注意:必须返回一个字符串类型的值)

 class People:
def __init__(self, name, age):
self.name = name
self.age = age def __str__(self):
# print('run..........')
return '<name:%s age:%s>' % (self.name, self.age) obj1 = People('egon', 18)
print(obj1) # print(obj1.__str__()) obj2=list([1,2,3])
print(obj2)

__del__ :在对象被删除时先自动触发该方法,可以用来回收对象以外其他相关资源

 class Foo:
def __init__(self,x,filepath,encoding='utf-8'):
self.x=x
self.f=open(filepath,'rt',encoding=encoding) def __del__(self):
print('run.....')
# 回收对象关联的其他资源
self.f.close() obj=Foo(1,'a.txt')
# del obj
print('主===========>')

isinstance与issubclass的用法

 class Bar:
pass class Foo(Bar):
pass obj = Foo()
print(issubclass(Foo, Bar)) print(isinstance(obj, Foo))

最新文章

  1. Windows安装RabbitMQ集群的几个注意点
  2. PHP实现把文本中的URL转换为链接的auolink()
  3. Javascript for循环指定锚点跳转
  4. html/css 布局练习3
  5. JavaScript this用法总结
  6. 设计模式之美:Behavioral Patterns(行为型模式)
  7. Java:String和Date、Timestamp之间的转换
  8. insert 多个values
  9. java根据图片和文字生成自定义图片
  10. IPv6 tutorial 3 New features: IPsec and LAN features
  11. 2016022607 - redis配置文件
  12. Lambda表达式转SQL语句类库
  13. Oracle10g数据泵EXPDP和IMPDP备份与恢复数据
  14. Python 基于TK 文本编辑器
  15. POJ1509 Glass Beads(最小表示法 后缀自动机)
  16. Hive分区
  17. HDU 4283 You Are the One ——区间dp
  18. ubuntu1604使用之旅——启动ssh系列
  19. LeetCode 键盘行-Python3.7&lt;四&gt;
  20. python使用上下文对代码片段进行计时,非装饰器

热门文章

  1. CorelDRAW快速制作抖音幻影图像效果
  2. react特性-声明式编程
  3. Java类及成员
  4. Django - ORM创建基本类
  5. C++入职学习篇--新员工入职(持续更新)
  6. homework week 1
  7. 6.3.3 使用 shelve 模块操作二进制文件
  8. (39.1) Spring Boot Shiro权限管理【从零开始学Spring Boot】
  9. mybatis源码阅读-初始化过程(七)
  10. poj 1724 最短路+优先队列(两个约束条件)