如何解释 Python 面向对象编程?

面向对象编程(Object Oriented Programming,简称OOP)把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

什么是“对象”?

在 Python 中所有的数据类型都可以视为对象,然后每个对象都会有多个属性。比如,将“人”视为一个对象,姓名、身高、体重、性别等等都可以作为描述对象的属性。

1
对象 = 属性1 + 属性2 + ··· + 属性n

创建类(class)

按照我的理解,类(class)是一种可以将实体进行快速抽象的方法,在类里会强制规定各种属性。通过类方法,我们可以快速创建对象。

1
2
3
4
5
6
7
8
9
10
11
class People(object):
# '__init__' 的第一个参数永远是 self,self 参数
# 表示创建的实例本身
def __init__(self, name, height, weight, gender):
self.name = name
self.height = height
self.weight = weight
self.gender = gender
def print_people(self):
print "Name: %s, Height: %s, Weight: %s, Gender: %s" % (self.name, self.height, self.weight, self.gender)

然后就可以将数据传入到 People 类了,其实讲到现在类方法实际上跟函数没什么差别。

1
2
3
4
5
libin = People('libin', 175, 66, 'male')
# 调用操作也十分简单
libin.print_people()
>>> Name: libin, Height: 66, Weight: 175, Gender: male

访问属性

访问、添加、删除、修改类的属性

1
2
3
4
5
6
7
8
9
10
# 访问类的'name'属性
getattr(libin, 'name')
>>> libin
# 检查类中是否存在一个属性,返回True或False
hasattr(libin, 'name')
>>> True
# 设置属性:设置类libin的weight为70
setattr(libin, 'weight', 70)
# 删除属性:删除类libin的height属性
delattr(libin, 'height')
觉得还不错?帮我赞助点域名费吧:)