zoukankan      html  css  js  c++  java
  • isinstance issubclass 与系统内置属性 __getattribute__

    # isinstance issubclass 与系统内置属性 __getattribute__
    # isinstance(obj, cls)检查obj是否是类cls的实例
    
    class Foo:
        pass
    
    
    obj = Foo()
    print(isinstance(obj, Foo))  # True 判断obj是否是Foo类的实例
    
    mystr = 'hello world'
    print(isinstance(mystr, str))  # True  判断字符串是否是str这个类的实例
    
    
    # issubclass(sub, super) 检查sub类是否是super类的子类
    class A:
        pass
    
    
    class B(A):
        pass
    
    b1 = B()
    print(issubclass(B, A))  # True 判断B是否是A的子类
    print(isinstance(b1, A))  # True 判断b1是否是A的实例
    
    # __getattribute__
    class Foo1:
        def __init__(self, x):
            self.x = x
    
        def __getattr__(self, item):
            print('属性不存在时执行的是我')
            # return self.__dict__[item]
    
        def __getattribute__(self, item):   # 不管属性是否存在,都要执行此方法
            print('不管属性是否存在,都要执行我')
            raise AttributeError('抛出AttributeError异常')  # __getattr__会监听__getattribute__抛出的AttributeError异常,一但发现此异常就会执行__getattr__中的代码
    
            # 当__getattribute__与__getattr__同时存在时,只会执行__getattribute__,除非__getattribute__在执行过程中抛出AttributeError异常
  • 相关阅读:
    sql语句中的一些常用语法
    torch_12_BigGAN全文解读
    torch_12_dataset和dataLoader,Batchnormalization解读
    torch_11_BEGAN
    torch_11_风格迁移和cycleGAN
    torch_10_stackGAN-V2
    torch_09_DCGAN_注意的细节
    torch_09_GAN
    pytorch-04-激活函数
    torch_07_卷积神经网络案例分析
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9465657.html
Copyright © 2011-2022 走看看