01 dir 内置函数
在python中对象无处不在,像 变量、数据、函数 都是对象。class Cat:
使用内置函数 dir 传入 标识符/数据 ,可以查看对象内的所有属性及方法。
02 定义简单的类(只包含方法)
注意:
- 类名的命名规则 要符合大驼峰命名法
- 方法的定义格式和之前学过的函数几乎一模一样,区别是方法第一个参数必须是 self。
所谓方法,就是定义在类内部的函数。
03 创建对象
语法格式 : 对象变量 = 类名()
第一个面向对象的程序:
需求:
小猫爱吃鱼,小猫爱喝水
分析:
1、定义一个猫类 Cat
2、定义两个方法 eat和 drink
3、按照需求——不需要定义属性
代码:
class Cat: def eat(self): print("小猫爱吃鱼") def drink(self): print("小猫爱喝水" ) tom = Cat() tom.eat() tom.drink()
案例改造——给对象增加属性
在 python 中,要给对象设置属性,非常容易,但是不推荐使用。(因为容易出现的一个问题是 在运行时没有找到响应属性(比如写到了下一行)程序会报错,对象属性的封装应该封装在类的内部)
只需要 在类的外部代码中 直接通过 . 设置一个属性即可
tom = Cat() tom.name = "tom"
05 self 的使用
由哪一个对象 调用的方法,方法内的 self 参数 就是哪一个对象的引用。
- 调用方法时,程序员不需要传递 self 参数
- 在方法内部:
可以通过 self .访问对象的属性
也可以通过 self. 调用其他对象的方法
06 在初始化方法内部定义属性
当使用 类名() 创建对象时,会 自动执行 以下操作:
1、为对象在内存中分配空间——创建对象
2、为对象的属性 设置初始值——自动调用初始化方法 _init _(这是python的内置方法)
__init _方法是 专门用来定义一个类 具有哪些属性的方法。该方法在创建对象时会被自动调用
3、在 _init _方法内部使用 self.属性名 = 属性的初始值 就可以定义属性
4、这样定义属性之后,再使用 Cat 类创建的对象,都会拥有该属性。
07 改造初始化方法
在开发中,如果希望在创建对象的同时,就设置对象的属性,可以对init_ _方法进行改造
1、把希望设置的属性值,定义成init_ _方法的参数
2、在方法内部使用 self.属性 = 形参 接受外部传递的参数
3、在创建对象时,使用 类名(属性1,属性2....)调用
08 内置方法和属性
1、_del_方法:当一个对象被从内存中销毁前,会自动调用。回顾 __init _方法是 当使用类名( )创建对象时,为对象分配完内存空间后自动调用的方法。
- 应用场景:
_init _方法 改造初始化方法,可以让创建对象更加灵活
__del_方法 如果希望在对象被销毁前,再做一些事情,可以考虑改写这个方法。
一个对象的生命周期 就是在这两个内置方法自动调用之间。
2、_str _ 方法:在python中,使用print 输出对象变量,默认情况下会输出这个变量引用的对象 是由哪一个类创建的对象,以及在内存中的地址(十六进制表示)
- 应用场景:
如果在开发中,希望使用print 输出对象变量时,能够打印自定义的内容,就可以利用重写_ str _ 方法了。
注意:_str _ 方法必须返回一个字符串