如果说函数是功能的抽象
,那么对象就是在函数都基础上再度抽象
。我们可以这么理解,我们把一段关于加法的代码,定义成一个add
函数,把一段关于减法的代码,定义成一个minus
函数。这是常见的函数使用场景,而对象呢,就是无论是加
还是减
,剩
还是除
你都跟数学
相关,那么就可以把这些全部归成一个数学类
,概括了所有关于数学的功能。
我们试着定义一个关于动物
的类,它是一个处理动物相关的工厂
,编程的世界里有大大小小这样的工厂,负责处理着某些特定的功能。
# 通常 我们约定俗成的把类的首字母用大写标示
class Animal():
def __init__(self, name):
self.name = name
def sleep(self):
print("zzZZZ~")
下面,我们试着对这个动物
的类进行解刨阐明。
在每个类
里面,都有一个构造函数
,其作用就是初始化类相关的一些设置,当类被执行的时候会调用。Python中的构造函数就是__init__
,严格来讲是__new__
。这里我们先不做过多探讨,我们只需要记住,当类被启动的时候,__init__
方法也会被自动的调用执行。
类跟函数一样,支持传参
。
class Animal():
def __init__(self, name): # 接收参数从第二个参数开始 | self 表示当前对象本身,类里面的每一个函数的第一个参数都是self
self.name = name
def sleep(self):
print("zzZZZ~")
# 实例对象
Animal('cat') # 传参
类这个物种只有两种元素
组成,属性
和方法
,通常属性就是我们数据类型篇
讲的那些数字
、字符串
等等,而方法
就是函数
,一个类可以有多个属性,和多个方法。类的内部,就像一个独立生态环境,而属性和方法如同环境里面的各种细胞,支撑着、构成了一个对象。
class Animal():
def __init__(self, name):
self.name = name # 属性 | Python 通过 self 的方式来绑定属性
# 方法
def sleep(self):
print("zzZZZ~")
我们有必要搞清楚类
和对象
它们之间的关系,对象是类的实例,类是对象的模版
。
# 类就像是一个生产对象的工厂,一个模子下去,一个对象,又一个模子下去,一个对象。
class Animal():
def __init__(self, name):
self.name = name
def sleep(self):
print("zzZZZ~")
# 生产出一只猫
cat = Animal('cat')
>>> name = cat.name # 获取属性
>>> name
'cat'
>>> cat.sleep() # 执行方法 | 让猫睡
'zzZZZ~'
# 生产出一只狗
dog = Animal('dog')
...
# 这样,我们就通过 Animal 这个动物工厂制造了 cat、dog 两种动物
# 通常也把 cat dog 称之为 Animal 的实例