注:
类中只有属性和方法, 没有代码段

魔法方法是python中面向对象的一切

基本都是双下划线包围
例:

  1. def __init__():

类 类对象 实例对象

不要试图在一个类中定义所有属性方法, 利用继承和组合机制
用不同的词性命名

类变量 实例变量

实例变量用于每个实例的唯一数据, 而类变量用于类的所有实例共享的属性和方法

  1. class Dog:
  2. kind = 'canine' # class variable shared by all instances
  3. def __init__(self, name):
  4. self.name = name # instance variable unique to each instance

什么是绑定(self)

self: python要求方法需要有实例才能被调用, 这种限制其实就是python所谓的绑定概念
查看对应属性:

  • 对象.dict
  • 类名.dict

    普通方法 静态方法 类方法

  • 普通方法

默认有self参数;
且只能被对象调用;

  • 静态方法

用@staticmethod, 装饰不带self参数的方法叫静态方法;
类的静态方法可以没有参数;
可以直接使用类名调用, 也可以使用对象调用;

  • 类方法

用@classmethod, 默认有cls参数;

一些内置函数 (built-in functions)

  • issubclass(class, classinfo)
    1. 一个类被认为是自身的子类
    2. classinfo可以是元组, 是各个类组成的
  • isinstance(object, classinfo)

    1. 第一个参数不是对象, 则永远返回False
    2. 第二个参数不是类或类组成的元组, 抛出TypeError异常
  • hasattr(object, name)

    1. 对象是否有name属性, name是字符串
  • getattr(object, name[,default])
    1. 获得对象的属性
    2. name是字符串
  • setattr(object, name, value)
    1. 存在赋值, 不存在新建赋值
    2. name是字符串
  • delattr(object, name)
    1. 删除指定属性
    2. name是字符串