首页 > 其他 > 详细

isinstance与issubclass的使用 和 __enter__与__exit__的使用

时间:2020-07-11 00:56:38      阅读:103      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!