isinstance与issubclass的使用
class Foo:
pass
f=Foo()
print(isinstance(f,Foo)) #判断f是否是Foo的实例
class Coo:
pass
print(issubclass(Coo,Foo)) #判断Coo是否是Foo的子类
c=Coo()
print(isinstance(c,Foo)) #返回True 子类的实例可以返回True
__enter__与__exit__的使用:
class Test: def __init__(self,name): self.name=name def __enter__(self): print("---》执行enter") return self def __exit__(self, exc_type, exc_val, exc_tb): print("最后执行我") with Test("123") as f: #实际上with Test(“123”) 这个执行的是__entry__的内容然后把return 的值给f print("1") print("2")
返回结果:
---》执行enter
1
2
最后执行我
补 充
class Test: def __init__(self,name): self.name=name def __enter__(self): print("---》执行enter") return self def __exit__(self, exc_type, exc_val, exc_tb): print("最后执行我") print(exc_type) print(exc_val) print(exc_tb) return True with Test("123") as f: #实际上with Test(“123”) 这个执行的是__entry__的内容然后把return 的值给f print("1") print("2") print(sada) #报错的时候将直接执行exit的内容 with中内容和程序内容将不再执行 print("3") #若有return True 的时候则继续运行程序但是with将不再运行 #exc_type是错误类型 exc_val错误值 exc_tb最终信息 print("------------------")
isinstance与issubclass的使用 和 __enter__与__exit__的使用
原文:https://www.cnblogs.com/rxybk/p/13282084.html