python面向对象语言_Python语言基础之——面向对象编程

本文详细介绍了Python中类属性与对象属性的区别,包括它们的创建、访问、修改及删除等操作。同时,还探讨了如何使用内置属性来获取类的相关信息,并介绍了Python中的私有化概念以及getter和setter的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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对应的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值