python刻意练习day 12 类与对象

对象

对象=属性+方法
对象是类的实例
python中,用class来定义类,后面紧跟类的名称,冒号和类的实现
继承:是子类与父类之间共享数据和方法的机制
多态:不同的对象使用同一种方法,做出不同的响应

self:
类的方法必须有一个额外的第一个参数名称,对应于该对象本身,名字一般为self
在调用方法时,无需提供与self相对应的参数

python的魔法方法
类有一个名为__init__(self[, param1, param2…])的魔法方法,该方法在类实例化时会自动调用。

公有和私有
定义私有变量和函数,需要在变量或函数前面加上两个下划线

python也支持类的继承
class 派生类名(基类名)
如果子类中定义同名的方法,则会覆盖父类中的方法
python也支持多继承

组合
将多个类中的方法组合到一个类中

类,类对象,实例对象
类对象:创建一个类,其实也是一个对象也在内存开辟了一块空间,称为类对象,类对象只有一个。
实例对象:就是通过实例化类创建的对象,称为实例对象,实例对象可以有多个。
类属性和实例属性区别
类属性:类外面,可以通过实例对象.类属性和类名.类属性进行调用。类里面,通过self.类属性和类名.类属性进行调用。
实例属性 :类外面,可以通过实例对象.实例属性调用。类里面,通过self.实例属性调用。
实例属性就相当于局部变量。出了这个类或者这个类的实例对象,就没有作用了。
类属性就相当于类里面的全局变量,可以和这个类的所有实例对象共享。
注意:属性与方法名相同,属性会覆盖方法。

Python 严格要求方法需要有实例才能被调用,这种限制其实就是 Python 所谓的绑定概念。
Python 对象的数据属性通常存储在名为.__ dict__的字典中,我们可以直接访问__dict__,或利用 Python 的内置函数vars()获取.__ dict__。

类的一些内置函数
issubclass(class, classinfo) 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
一个类被认为是其自身的子类。
classinfo可以是类对象的元组,只要class是其中任何一个候选类的子类,则返回True。
isinstance(object, classinfo) 方法用于判断一个对象是否是一个已知的类型,类似type()。
type()不会认为子类是一种父类类型,不考虑继承关系。
isinstance()会认为子类是一种父类类型,考虑继承关系。
如果第一个参数不是对象,则永远返回False。
如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常。
hasattr(object, name)用于判断对象是否包含对应的属性。
getattr(object, name[, default])用于返回一个对象属性值。
setattr(object, name, value)对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
delattr(object, name)用于删除属性。
class property([fget[, fset[, fdel[, doc]]]])用于在新式类中返回属性值。
fget – 获取属性值的函数
fset – 设置属性值的函数
fdel – 删除属性值函数
doc – 属性描述信息

发布了24 篇原创文章 · 获赞 0 · 访问量 310

猜你喜欢

转载自blog.csdn.net/weixin_45776003/article/details/102877998
今日推荐