Python基础语法十六:面向对象编程

1.类属性

1)类属性:
直接定义在类中的变量是类属性
类属性的值不会因为对象不同而不一样
2)对象属性
通过 self.属性名 = 值 定义在init函数中的属性
对象属性的值会因为对象不同而不一样

2.对象属性的增删改查

1.查
对象.属性 - 获取对象中指定属性对应的值,属性不存在会报错
getattr(对象, 属性名) - 获取对象指定属性对应的值,属性不存在会报错
getattr(对象, 属性名, 默认值) - 获取对象指定属性对应的值,属性不存在不会报错,返回默认值
2.改、增
对象.属性 = 值 - 当属性不存在就给对象添加属性,属性存在的时候就修改属性的值
setattr(对象, 属性, 值)
3.删
del 对象.属性 - 删除对象中指定的属性
delattr(对象, 属性名) - 删除对象中指定的属性

3.内置属性

1.module
类属性:
类.module - 获取定义类的模块的模块名
2.class
对象.class - 获取对象对应的类
3.name
类.name - 获取类名
4.dict
类.dict - 将类转换成字典(类属性名作为key,类属性的值作为值 )
对象.dict - 将对象转换成字典(对象属性名作为key,属性的值作为值)
5.doc
类.doc - 获取类的说明文档
6.base bases
类.base
获取当前类的父类
bases - 获取当前类所有的父类
7.slots
约束当前元素的数量,如果给类属性__slots__赋值了,最后结果不再是字典,导致不能使用__dict__

4.私有化

访问权限(针对属性和方法)
公开的:在类的内部和外部都可以使用,也能被继承
保护的:在类的内部可以使用,在类的外部不能使用,但是可以被继承
私有的:只能在类的内部使用,不能被继承

严格来说,Python中所有的属性和方法都是公开的,这说的私有化其实是假的私有化

5.getter和setter

1.getter和setter的作用
getter - 获取某个属性之前想做别的事情,就给这个属性添加getter
setter - 在给属性赋值之前想要做别的事情,就给这个属性添加setter
getter和setter 的添加方法:
1)getter
第一步:在需要添加getter的属性名前加下划线
第二步:定义getter对应的函数() 需要@property装饰器 函数名就是不带下划线的属性名 函数需要一个返回值
获取属性值的通过:对象.不带_的属性名 本质就是在调用getter对应的函数,取到的属性值就是函数的返回值
2)setter
如果想要给属性添加setter,必须先给属性添加getter
第一步:添加getter
第二步:定义setter对应的函数 需要@getter函数名.setter装饰器 函数名就是不带_的属性名 需要一个参数,不需要返回值,这个参数就是尝试给属性赋的值
第三步:给属性赋值:对象.不带下划线的属性名 = 值 本质就是在调用setter对应的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值