风不会停息 发表于 2018-7-3 15:22:31

python 040 关于类和对象的一些BIF

1. issubclass(class, classinfo):判断第一个参数(class)是否为第二个参数(classinfo)的子类, 是则返回True, 不是则返回False
        1. 另一个类被认为是自身的子类
        2. classinfo可以是类对象组成的元组, 只要class为其中一个类的子类, 则返回True
        3. 传入的class不是类, 则抛出TypeError异常

2. isinstance(object, classinfo): 判断第一个参数(object)是否为第二个参数(classinfo)的实例对象, 是则返回True, 不是则返回False
        1. 如果object为classinfo的子类的一个实例, 也符合条件
        2. 如果第一个参数不是对象, 则返回False
        3. classinfo可以是类对象组成的元组, 只要object为其中一个类的实例或子类的实例, 则返回True

3. hasattr(object, name): 判断属性是否存在, 第一个参数(object)为对象, 第二个参数(name)为属性名的字符串形式, 存在则返回True, 不存在则返回False

4. getattr(object, name[, default]): 返回对象指定的属性值, 若不存在则返回default(可选参数)的值

5. setattr(object, name, value): 创建一个属性并赋予相应的值, 若属性存在, 则覆盖原属性的值

6. delattr(object, name): 删除一个指定的属性

7. property(fget = None, fset = None, fdel = None, doc = None): fget为获取属性值的函数, fset为设置属性值的函数, fdel为删除属性值的函数, doc为属性描述信息, 例如:

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)

>>> c.x
10
>>> c.x = 12
>>> c.x
12


property()函数可以让编程人员轻松有效的管理属性访问

Muah 发表于 2020-10-8 16:09:02

{:10_298:}感谢!
页: [1]
查看完整版本: python 040 关于类和对象的一些BIF