本文以GitHub上100天python从新手到大师为素材,规划为约100天的练习,每次的学习和总结均发在这里。有错误的地方还请朋友们指正。
什么是面向对象编程
根据我粗浅的理解,面向对象编程"把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。"
封装就是将一切实现的细节隐蔽起来,只给对方一个接口来使用。继承是指我们可以继承类的统一特性,但每个继承下来的新对象都不一样,会有自己的特性,这就是多态。
类和对象
类是对象们的统一,对象是类的具体化。
例如在动物中,狗是类的名字,而柯基、哈士奇就是狗类下的具体例子。当我们把柯基、哈士奇里四足、耳朵形状、叫声等特征行为概括起来时候,狗的类就建立起来了。
创建和使用对象
使用关键字 class 创建类,在里面可以通过属性赋值和函数来赋予类的内容。可以通过下面例子来说明:
其中 init 是特别的方法,用于初始化类的内容,并且我们通过self.name来获取了学生的名字,并以此类推。
class Student(object):
def __init__(self, name, age):
self.name = name
self.age = age
def study(self, course_name):
print("%s is studying %s" % (self.name, course_name))
def watch_movie(self):
if self.age < 18:
print("%s 在看熊大" % self.name)
else:
print("%s 在看成人才可以看的"