zoukankan      html  css  js  c++  java
  • python学习对象相关的bif

    >>> class A:
        pass
    
    >>> class B(A):
        pass
    
    >>> issubclass(B, A)    #A是否是B的子类
    True
    >>> issubclass(B, B)
    True
    >>> issubclass(B, object)
    True
    >>> class C:
        pass
    
    >>> issubclass(B, C)
    False
    
    >>> b1 = B()
    >>> isinstance(b1, B)    #123
    True
    >>> isinstance(b1, A)
    True
    >>> isinstance(b1,C)
    False
    >>> isinstance(b1,(B,A,C))
    True

      issubclass(class, classinfo)

    1.一个类被认为是自身的子类

    2.classinfo可以是类对象组成的元组,只要class是其中一个候选类的子类,则返回True

      isinstance(object, classinfo)

    1.如果第一个参数不是对象,则永远返回False

    2.如果第二个参数不是类或者由类对象组成的元组,会有TypeError异常

      hasattr(object, name)

    1.检查object对象是否含有该‘’name‘’属性

    >>> class C:
        def __init__(self, x=0):
            self.x = x
    
            
    >>> c1 = C()
    >>> hasattr(c1,'x')
    True

      getattr(object, name[, fault])

    1.返回对象指定的属性值,如果不存在则会返回fault指定的错误

    >>> getattr(c1, 'x')
    0
    >>> getattr(c1, 'y')
    Traceback (most recent call last):
      File "<pyshell#25>", line 1, in <module>
        getattr(c1, 'y')
    AttributeError: 'C' object has no attribute 'y'
    >>> getattr(c1,'y',"您访问的属性不存在...")
    '您访问的属性不存在...'

      setattr(object, name, value)

    1.访问是否有该属性,若没有,则添加这个属性及其值

      delattr(object, name)

    1.删除指定的属性

    property(fget=None, fset=None, fdel=None, doc=None)

    1.通过属性设置属性

    >>> class C:
        def __init__(self, size=10):
            self.size = size
        def getSize(self):
            return self.size
        def setSize(self, value):
            self.size = value
        def delSize(self):
            del self.size
        x = property(getSize,setSize,delSize)
    
        
    >>> c1 = C()
    >>> c1.getSize()
    10
    >>> c1.x
    10
    >>> c1.x = 18
    >>> c1.x
    18
    >>> del c1.x

    2.相当于重新封装3个属性

  • 相关阅读:
    linux nat style
    vmware tools install
    linux network
    sql group by max
    实例 | tp5使用七牛云上传图片和文件/删除文件
    菜鸟如何使用composer
    浅谈数据库用户表结构设计,第三方登录
    app登陆,注册,第三方登陆数据设计及业务流程
    数据库设计——评论回复功能
    app接口设计之token的php实现
  • 原文地址:https://www.cnblogs.com/jdzhang1995/p/10446990.html
Copyright © 2011-2022 走看看