魔法方法是python中面向对象的一切
基本都是双下划线包围
例:
def __init__():
类 类对象 实例对象
不要试图在一个类中定义所有属性方法, 利用继承和组合机制
用不同的词性命名
类变量 实例变量
实例变量用于每个实例的唯一数据, 而类变量用于类的所有实例共享的属性和方法
class Dog:kind = 'canine' # class variable shared by all instancesdef __init__(self, name):self.name = name # instance variable unique to each instance
什么是绑定(self)
self: python要求方法需要有实例才能被调用, 这种限制其实就是python所谓的绑定概念
查看对应属性:
- 普通方法
默认有self参数;
且只能被对象调用;
- 静态方法
用@staticmethod, 装饰不带self参数的方法叫静态方法;
类的静态方法可以没有参数;
可以直接使用类名调用, 也可以使用对象调用;
- 类方法
一些内置函数 (built-in functions)
- issubclass(class, classinfo)
- 一个类被认为是自身的子类
- classinfo可以是元组, 是各个类组成的
isinstance(object, classinfo)
- 第一个参数不是对象, 则永远返回False
- 第二个参数不是类或类组成的元组, 抛出TypeError异常
hasattr(object, name)
- 对象是否有name属性, name是字符串
- getattr(object, name[,default])
- 获得对象的属性
- name是字符串
- setattr(object, name, value)
- 存在赋值, 不存在新建赋值
- name是字符串
- delattr(object, name)
- 删除指定属性
- name是字符串
