zoukankan      html  css  js  c++  java
  • python:类2——有关类和对象的BIF内置函数

    • 1、检查、判断

    判断一个类是不是另一个类的子类

    issubclass(class, classinfo)如果第一个参数是第二个参数的子类、子子类等,返回true

    • 非严格(自己可以认为是自己的子类);
    • 第二个参数可以是由多个class组成的tuple,有任何一个合适,就true;
    • 其他情况对抛出typeerror

    判断一个对象是不是某个类的实例对象

    isinstance(object, classinfo)检查某第一个参数实例对象是否属于一个类

    • 第二个参数可以是由多个class组成的tuple,有任何一个合适,就true
    • 如果第一个参数传入不是对象类型,永远返回false
    • 如果第二个参数不是类或者由类对象组成的tuple,会抛出TypeError

    2、点操作符号访问对象属性,attribute相关:

    hasattr(object, name)  对象是否有制定的属性name,name需要用引号括起来,否则他会认为是变量,

    getattr(object, name [, default])  获得对象object的name属性值,如果不存在,返回default,若没有设置default,不存在时会抛出AttributeError

    • getattr(A, 'b', '您所访问的属性不存在')

    setattr(object, name, value)  设置对象name属性的值为value,若属性不存在会新建新的属性;name加引号

    delattr(object, name)  删除指定的属性;若不存在,抛出AttributeError

     

    property()  通过属性设置属性

    • x = property(getSize, setSize, delSize)设置一个x属性,能操作getSize、setSize、delSize(提前自己写好)方法
    • x可以作为调用接口,里边的方法可以大改,比如改名字等,增加方法。
    • 工作原理:组合了几个魔法方法

  • 相关阅读:
    1105 Spiral Matrix (25分)(蛇形填数)
    1104 Sum of Number Segments (20分)(long double)
    1026 Table Tennis (30分)(模拟)
    1091 Acute Stroke (30分)(bfs,连通块个数统计)
    1095 Cars on Campus (30分)(排序)
    1098 Insertion or Heap Sort (25分)(堆排序和插入排序)
    堆以及堆排序详解
    1089 Insert or Merge (25分)
    1088 Rational Arithmetic (20分)(模拟)
    1086 Tree Traversals Again (25分)(树的重构与遍历)
  • 原文地址:https://www.cnblogs.com/daduryi/p/6824476.html
Copyright © 2011-2022 走看看