面向对象
OOP
- 在代码里面的叫函数
Function
- 在对象里面的函数,叫方法
Method
- 方法的第1个参数,固定是
self
(类方法、静态方法除外) self
指向的是当前正在调用方法的对象self
可以改为其他名字(比如Java的this
),哪怕是abc
,但是建议还是用self
构造方法
对象创建完毕后,会自动调用:__init__
构造方法
内置属性、方法
以双下划线开头、结尾的属性、方法,通常都是对象内置的(与生俱来的)
- 属性:
__doc__、__annotations__、__dict__
等 - 方法:
__init__、__str__、__len__、__bool__
等
可见性
如果属性名/方法名,是以双下划线开头、且不以双下划线结尾,那么这个属性/方法就会对外不可见
自定义的
__name__
是对外可见的
不可见的真相
-
原名称被改成了:
_类名 + 原名称
-
比如
__name
被改成了:_Student__name
-
通过
_Student__name
还是可以访问和修改不可见的属性/方法 -
Python不支持重载(方法名相同,参数不同)
类方法
class Dog:
# 对象方法、实例方法
def test1(self):
pass
# 类方法
@classmethod
def test2(cls):
pass
# 静态方法
@staticmethod
def test3():
pass
捕获异常
try、except、else、finally
配合使用