zoukankan      html  css  js  c++  java
  • Python 类的一些BIF

    issubclass

    1 issubclass(cls, class_or_tuple, /)
    2     Return whether 'cls' is a derived from another class or is the same class.
    3     
     1 class A:
     2     pass
     3 
     4 class B(A):
     5     pass
     6 
     7 class C:
     8     pass
     9 
    10 print(issubclass(A,(B,A)))  # 一个类会被认为自己的子类 .
    11 
    12 print(issubclass(A,B))      # 第一个是否是第二个类的子类
    13 
    14 print(issubclass(B,(A,C)))
    15 
    16 
    17 help(issubclass)
    
    
    
     
    1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
    2 True
    3 True
    4 True
    5 False
    6 >>> 

    isinstance

     1 #isinstance   检查一个实例对象是否属于一个类 . (第二个也可以是一个元祖 可以有多个类.)
     2 class A:
     3     pass
     4 
     5 class B(A):
     6     pass
     7 
     8 class C:
     9     pass
    10 
    11 b1=B()
    12 print(isinstance(b1,A))
    13 
    14 print(isinstance(b1,B))
    15 
    16 print(isinstance(b1,C))
    17 
    18 
    19 print(isinstance(b1,(C,B)))
    1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
    2 True
    3 True
    4 False
    5 True
    6 >>> 

    hasattr  判断一个 对象里面有没有该属性

     1 #   hasattr(第一个是对象.第二个是属性名)    (attr=attribute 属性)
     2 class A:
     3     pass
     4 
     5 class B(A):
     6     pass
     7 
     8 class C:
     9     def __init__(self,x=0):
    10         self.x=x
    11 
    12 #测试一个对象是否有指定的和属性.
    13 c1=C()
    14 print(hasattr(c1,'x'))# 属性必须用 '' 来 修饰
    1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
    2 True
    3 >>> 

    getattr(实例对象,属性,不存在打印的值)(attribute 属性)  得到一个实例对象的属性的值 , 如果该属性不存在则打印第三个参数

     1 #   getattr(object,name[,default)   返回对象指定的属性值 如果指定的参数不存在 如果你制订了default则会defaulf打印出来,否则会有一个arrtibute的异常 ,
     2 class A:
     3     pass
     4 
     5 class B(A):
     6     pass
     7 
     8 class C:
     9     def __init__(self,x=0):
    10         self.x=x
    11 
    12 c1=C()
    13 
    14 print(getattr(c1,'x'))
    15 print(getattr(c1,'y','您所访问的属性不存在'))
    1 0
    2 您所访问的属性不存在
    3 >>> 

    setattr(实例对象,属性,值) 给实例对象一个属性值 如果该属性不存在则 建立属性然后赋值 . 

     2 class A:
     3     pass
     4 
     5 class B(A):
     6     pass
     7 
     8 class C:
     9     def __init__(self,x=0):
    10         self.x=x
    11 
    12 c1=C()
    13 print(getattr(c1,'y','您访问的属性不存在'))
    14 
    15 print(setattr(c1,'y',0))
    16 
    17 print(getattr(c1,'y','您访问的属性不存在'))
    1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
    2 您访问的属性不存在
    3 None
    4 0
    5 >>> 

    delattr(实例变量,属性) 属性不存在则抛出 AttributeError的异常

     2 class A:    
     3     pass
     4 
     5 class B(A):
     6     pass
     7 
     8 class C:
     9     def __init__(self,x=0):
    10         self.x=x
    11 
    12 c1=C()
    13 print(getattr(c1,'y','您访问的属性不存在'))
    14 
    15 print(setattr(c1,'y',0))
    16 
    17 print(getattr(c1,'y','您访问的属性不存在'))
    18 
    19 print(delattr(c1,'y'))
    20 
    21 print(getattr(c1,'y','您访问的属性不存在'))
    1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
    2 您访问的属性不存在
    3 None
    4 0
    5 None
    6 您访问的属性不存在
    7 >>> 

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

        (得到 , 重置 , 删除 . )

     1 class C:
     2     def __init__(self,size=10):
     3         self.size=size
     4 
     5     def getSize(self):
     6         return self.size
     7 
     8     def setSize(self,value):
     9         self.size=value
    10 
    11     def delSize(self):
    12         del self.size
    13 
    14     x=property(getSize,setSize,delSize,'这个难道是注释')
    15 
    16 c1=C()      # 生成一个 对象实例
    17 
    18 print(c1.getSize())     # 调用getSize()函数 . 
    19 
    20 print(c1.x)         
    21 
    22 c1.x=18
    23 
    24 print(c1.size)  # 调用 size 属性 . 
    25 
    26 print(c1.getSize())
    27 
    28 del c1.x
    29 
    30 print(c1.size)
     1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
     2 10
     3 10
     4 18
     5 18
     6 Traceback (most recent call last):
     7   File "C:/Users/Administrator/Desktop/new.py", line 30, in <module>
     8     print(c1.size)
     9 AttributeError: 'C' object has no attribute 'size'
    10 >>> 
  • 相关阅读:
    ubuntu虚拟机下提示Network service discovery disabled
    jq简单实现选项卡--tab
    sublime text 出现错误error trying to parse file:Unexpected trailing characters in PackagesUserDefault(Windows).sublime-keymap:1:54
    sublime text 3设置快捷键让html文件在浏览器打开
    自动刷新浏览器
    项目---开饭了
    关于面试
    软件测试学习-关于三次握手与四次挥手的理解
    软件测试学习-笔记
    软件测试学习-数据库基础
  • 原文地址:https://www.cnblogs.com/A-FM/p/5674507.html
Copyright © 2011-2022 走看看