Python 面向对象

面向对象

如果说函数是功能的抽象,那么对象就是在函数都基础上再度抽象。我们可以这么理解,我们把一段关于加法的代码,定义成一个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 的实例
Python 教程 Python 入门 Python 时间 Python JSON