类的定义
类就像图纸
创建类的实列对象:类的实列化 实列即为通过图纸创建出来的实在的东西
调⽤⽅法 对象.⽅法名()
面向对象的属性和方法
面向过程:执行者
面向对象:指挥者
属性最好是携带在实列中,也就是创建实列属性
self参数
谁调用speak方法,w就是那个对象本身
谁来调用self方法,那么self指代的就是谁,即实列对象
特殊方法
在类中可以调用一下特殊方法,也称为魔术方法
特殊方法都是形如-xxx-()这种形式
特殊方法不需要我们调用,特殊方法会在特定时候自动调用
init方法
在实列创建的时候就被调用了
name属性是必须的,又是各不相同的
手动添加name属性容易遗忘,假使没有忘记,查看源码也非常麻烦
封装
出现封装的原因:我们需要⼀种⽅式来增强数据的安全性
- 属性不能随意修改
- 属性不能改为任意的值
- 封装是⾯向对象的三⼤特性之⼀
封装是指隐藏对象中⼀些不希望被外部所访问到的属性或⽅法
封装的引入
封装奇松就是一个暗号,告诉你的协同开发者这给数据很重要,不要轻易修改
getter()获取对象中指定的属性
setter()用来设置对象指定的属性
可以为对象的属性使⽤双下划线开头 __xxx。双下划线开头的属性,是对象 的隐藏属性,隐藏属性只能在类的内部访问,⽆法通过对象访问
其实隐藏属性只不过是Python⾃动为属性改了⼀个名字 --> _类名__属性 名 例如 __name -> _Person__name