""" 用类实现对象和封装 对象:对应客观世界的事物,将描述事物的一组数据和与这组数据有关的操作封装在一起, 形成一个实体,这个实体就是对象 类:具有相同或相似性质的对象的抽象就是类 forexample:汽车是一个类,则具体一辆汽车就是一个对象 面向对象编程的特点: 1.封装性 封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节 不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部 实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细 节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为 不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。类通 过将函数和变量封装在内部,实现了比函数更高一级的封装。 2.继承性 继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个 孩子都会继承父亲或者母亲的某些特征,当然这只是最基本的继承关系,现实世界中还存在 着更复杂的继承。继承机制实现了代码的复用,多个类公用的代码部分可以只在一个类中提 供,而其他类只需要继承这个类即可。 3.多态性 多态通常是指类中的方法重载,即一个类中有多个同名(不同参数)的方法,方法 调用时,根据不同的参数选择执行不同的方法。 """ # 多态性 class Animal: def kind(self): print("i am animal") class Dog(Animal): def kind(self): print("i am a dog") class Cat(Animal): def kind(self): print("i am a cat") class Pig(Animal): def kind(self): print("i am a pig") # 这个函数接收一个animal参数,并调用它的kind方法 def show_kind(animal): animal.kind() """ 狗、猫、猪都继承了动物类,并各自重写了kind方法。show_kind()函数接收一个animal参 数,并调用它的kind方法。可以看出,无论我们给animal传递的是狗、猫还是猪,都能正确 的调用相应的方法,打印对应的信息。这就是多态。 """ d = Dog() c = Cat() p = Pig() show_kind(d) show_kind(c) show_kind(p) # 创建类与对象 """ class 类名: 类的属性(成员变量) ... 类的方法(成员方法) ... 类名:类的名称,通常他的首字母大写 属性:用于描述事物的特征,如人的姓名、年龄等 方法:用于描述事物的行为,如人具有说话、微笑等行为 """ class Dog: num = 0 # 类变量 def __init__(self, id=0, color="yellow"): # 构造方法 self.id = id self.color = color def enjoy(self): # 成员方法 print("wangwang") def show(self, weight): print("重量{}公斤".format(weight)) print("id:{},颜色:{}".format(self.id, self.color)) dog1 = Dog(color="grey") # 构造dog1对象 dog1.weight = 52 # 为类添加属性 dog1.show(dog1.weight) dog1.enjoy() dog2 = Dog("101", "black") dog2.weight = 55 dog2.show(dog2.weight) # 构造方法和析构方法 """ Python的类提供了两个比较特殊的方法:__init__()和__del__(),分别用于初始化对象的 属性和释放对象所占用的资源 """ class Dog: def __init__(self): # 构造方法 self.color = "black" def show(self): print("id:{},颜色:{}".format(self.id, self.color)) def __del__(self): print("对象被清除") dog = Dog() dog.id = 1 dog.show() del dog # 删除dog对象
原文:https://www.cnblogs.com/daibeisi/p/14532065.html