面向对象-封装

image

绑定方法和静态方法

一、绑定方法

image

1、图中1和2处方法绑定给对象,方法绑定给谁就推荐谁使用,绑定给对象的方法,当对象调用的时候,会将自己当作第一个参数传入
2、图中3处是绑定给类的,标志是在方法上部添加@classmethond,当类调用方法的时候,会将自己当作第一个参数传入

二、静态方法

image

途中生成id函数为静态函数,它既没有绑定对象也没有绑定类,标志是在方法上部添加@staticmethond.

隐藏属性

一、如何隐藏

1、方法是在需要隐藏的属性或方法名前加双下杠
2、在类定义阶段,发生了语法上的变形,_类名__属性名
3、隐藏对外不对内
4、只有在类定义阶段发生变形,其他情况就不发生变形了
image

图中1处使用双下杠隐藏了restuarant_name
图中2处打印结果仍然显示名称,因为在定义阶段语法扫描过后,都发生了变形,也印证了隐藏属性是不对内的。
途中3处同理

为何隐藏

严格控制外部数据对内部数据的修改,达到内部数据的安全

property装饰器

image

property装饰器的作用是将方法伪装成属性
图中3处,外部直接通过对象名调属性即可获得属性的值
图中4处,外部通过restaurant.restaurant_name='mary'即可出发更改名字的函数
图中5处,通过del restaurant.restaurant_name,即可触发删除名字的函数

posted @ 2021-12-03 15:35  JudyJU  阅读(37)  评论(0)    收藏  举报