类与对象2

类与对象

方法

1) 对象方法
方法指的就是定义在类中的函数。

  1. 怎么定义: 直接定义在类中函数就是对象方法
  2. 怎么调用: 通过"对象.xx()"的形式来调用
  3. 特点: 每个对象方法都有一个默认参数self,且在通过对象调用时不需要手动传参,系统会自动将当前对象传给self(self谁调用就指向谁)
  4. 什么时候用: 如果实现函数的功能需要用到对象属性,就使用对象方法
    1.1)初始化方法 - init
    __init__是一个python类中一个特殊的对象方法,也是魔法方法
    魔法方法: 类中方法名以__开头并且以__结尾的方法都是魔法方法,魔法方法全部都是系统自带的。魔法方法不需要程序员主动调用,系统会特定的情况下自动调用。
  5. __int__方法会在每次创建对象时被自动调用
  6. 通过类创建对象的时候需不需要参数,需要几个参数,由类中的__init__决定
    2) 类方法
    方法指的就是定义在类中的函数。
  7. 怎么定义: 定义函数前加装饰器@classmethod
  8. 怎么调用: 通过"类.xx()"的形式来调用
  9. 特点: 每个类方法都有一个默认参数cls,且在通过对象调用时不需要手动传参,系统会自动将当前类传给cls
  10. 什么时候用: 在不需要对象属性的情况下需要类就使用类方法
    3) 静态方法
    方法指的就是定义在类中的函数。
  11. 怎么定义: 定义函数前加装饰器@staticmethod
  12. 怎么调用: 通过"类.xx()"的形式来调用
  13. 特点: 没有特点-没有特殊的默认参数
  14. 什么时候用: 实现函数功能不需要类属性和对象属性就使用静态方法

类中的属性

定义类就是用代码来描述这个类是拥有哪些相同特征的事物的总和。
如果特征是通过数据来体现的,那么这种特征就用属性来表示。
1) 对象属性
a. 怎么定义: 以"self.xx = 值"的形式定义在__init__方法中的属性
b. 怎么使用: 通过"对象.xx"的方式来使用
c. 什么时候用: 属性会因为对象不同而不一样的时候就使用对象属性
对象属性默认值
1.方式1: 使用固定的值(主要用于这个属性值在绝大部分情况下都是某一个值,极少情况会变化的时候用)
2.方式2: 在__init__中提供给这个属性赋值的形参,形参没有默认值(属性值一般都不一样)
3.方式3: 在__init__中提供给这个属性赋值的形参,形参有默认值(属性值出现默认值的情况居多)
2) 类属性
a. 怎么定义: 直接定义在类中的变量就是类属性
b. 怎么使用: 通过’类.xx与对象.xx’的方式来使用
c. 什么时候用: 属性不会因为对象不同而不一样的时候就使用类属性

对象属性的增删改查

__repr__方法(魔法方法)当打印当前类的对象时侯,这个方法会被自动调用,并且在打印时候会打印这个方法的返回值(返回值必须是字符串)
__dict__属性可以获取对象的属性(字典类型)
__slots__属性(对象属性)可以约束当前类的对象最多能拥有哪些对象属性
1.查 - 获取属性值
对象.属性 - 获取对象的某一个的对象属性;不存在报错
getattr(对象, 属性名) - getattr可以动态确定,获取对象的某一个的对象属性;不存在报错
getattr(对象, 属性名, 默认值) - getattr可以动态确定获取某一个的对象属性;返回默认值
2.增、改
对象.属性 = 值 - 如果属性存在就修改指定属性的值,如果属性不存在就添加属性
setattr(对象, 属性名, 值) 如果属性存在就修改指定属性的值,如果属性不存在就添加属性
3.删
del 对象.属性 - 删除对象的某一个对象属性
delattr(对象,属性名) - 删除对象的某一个对象属性
继承:让子类直接拥有父类所有的属性和方法
super().init() # 调用父类的__init__方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值