zoukankan      html  css  js  c++  java
  • Python 学习笔记 -- 一些常用的BIF

     1 #一些常用的BIF和使用实例
     2 
     3 #-------------------------------------------------------------------
     4 #issubclass 判断一个类是否是另外一些类的子类
     5 #issubclass(class,classinfo) classinfo 可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True
     6 class A:
     7     pass
     8 class B(A):
     9     pass
    10 class C:
    11     pass
    12 
    13 print("B是否是A的子类:",issubclass(B,A)) #True
    14 print("B是否是B的子类:",issubclass(B,B)) #注意:它返回True,认为B是B的子类
    15 print("B是否是C的子类:",issubclass(B,C)) #False
    16 print("B是否是A、B、C中某个类的子类:",issubclass(B,(A,B,C))) #True
    17 #-------------------------------------------------------------------
    18 
    19 #-------------------------------------------------------------------
    20 #isinstance 判断一个对象是否是某些类型
    21 #isinstance(object,classinfo) #第一个参数是实例对象,第二个参数是类或者是一堆类对象的元组
    22 class A:
    23     pass
    24 class B(A):
    25     pass
    26 class C:
    27     pass
    28 
    29 b = B()
    30 print("b是否是A类型的:",isinstance(b,A))  #True
    31 print("b是否是B类型的:",isinstance(b,B))  #True
    32 print("b是否是C类型的:",isinstance(b,C))  #False
    33 print("b是否是A、B、C中其中一种类型的:",isinstance(b,(A,B,C))) #True
    34 print("故意犯错:",isinstance(B,(A,B,C))) #这里第一个参数如果不是实例对象,将永远返回False
    35 #-------------------------------------------------------------------
    36 
    37 #-------------------------------------------------------------------
    38 #hasattr(object,name) 是否有属性,name是一个字符串
    39 #getattr(object,name[,default]) 获取属性,default是字符串,当获取失败时返回
    40 #setattr(object,name,value) 设置属性
    41 #delattr(object,name) 删除属性
    42 class A:
    43     def __init__(self, x=1):
    44         self.x = x
    45 a = A()
    46 if hasattr(a,"x"):
    47     print("")
    48 print(getattr(a,"y","对不起没有y这个属性"))
    49 setattr(a,"y",10)
    50 print(a.y)
    51 delattr(a,"y")
    52 #-------------------------------------------------------------------
    53 
    54 #-------------------------------------------------------------------
    55 #property 使用一个对象,用对象调用函数,函数设置对象属性值。
    56 #property(fget=None,fset=None,fdel=None,doc=None)
    57 class Test:
    58 
    59     def __init__(self,size = 1,count = 2):
    60         self.size = size
    61         self.count = count
    62 
    63     def getSize(self):
    64         return self.size
    65     def setSize(self,value):
    66         self.size = value
    67     def delSize(selfCount):
    68         del self.size
    69 
    70     def getCount(self):
    71         return self.count
    72     def setCount(self,value):
    73         self.count = value
    74     def delCount(self):
    75         del self.count
    76 
    77     a = property(getSize,setSize,delSize)
    78     b = property(getCount,setCount,delCount)
    79 
    80 test = Test()
    81 print(test.size) #1
    82 test.a = 100
    83 print(test.size) #100
    84 print(test.a)    #100
    85 
    86 print(test.count)#2
    87 test.b = 200
    88 print(test.count)#200
    89 print(test.b)    #200
    90 
    91 
    92 #-------------------------------------------------------------------
  • 相关阅读:
    android_handler(二)
    android_handler(一)
    java_synchronized 用法
    android surfaView surfaHolder video 播放
    《Java 8 实战》读书笔记
    Java面试宝典——基础部分
    Shell脚本---处理用户输入
    《Spring》(十八)---- 事务管理
    《Spring》(十七)---- JDBC访问数据
    《Spring》(十六)---- 基于Schema的AOP
  • 原文地址:https://www.cnblogs.com/jiangchenxi/p/8066239.html
Copyright © 2011-2022 走看看