(1)封装(Encapsulation)
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
(2)继承(Inheritance)
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
(3)多态(Polymorphism)
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
二 类成员的修饰符:下划线
xxx :公有成员,在任何地方都能访问
__xxx or ...__xxx:私有成员,只有类对象自己能访问,子类对象不能直接访问,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。
_xxx:受保护成员,不能用‘from module import *‘导入
__xxx__:系统定义的特殊成员
注:Python中不存在严格意义上的私有成员
1 class vector3: 2 def __init__(self, x_ = 0, y_ = 0, z_ = 0): #构造函数 3 self.x = x_ 4 self.y = y_ 5 self.z = z_ 6 7 def __add__(self, obj): #重载+作为加号 8 return vector3(self.x+obj.x, self.y+obj.y, self.z+obj.z) 9 10 def __sub__(self, obj): #重载-作为减号 11 return vector3(self.x-obj.x, self.y-obj.y, self.z-obj.z) 12 13 def __mul__(self,n): #重载*作为点乘 14 return vector3(self.x*n, self.y*n, self.z*n) 15 16 def __truediv__(self, obj): #重载/作为除法 17 return vector3(self.x/n, self.y/n, self.z/n) 18 19 def __str__(self): 20 return str(self.x)+‘,‘+str(self.y)+‘,‘+str(self.z) 21 22 if __name__ == "__main__": 23 n = int(input("请输入一个标量:")) 24 a,b,c = map(int,input("请输入第一个向量:").split()) 25 v1 = vector3(a,b,c) 26 a,b,c = map(int,input("请输入第二个向量:").split()) 27 v2 = vector3(a,b,c) 28 print("两向量的加法:",v1 + v2) 29 print("两向量的减法:",v1 - v2) 30 print("标量与向量的乘法:",v1 * n) 31 print("标量与向量的除法:",v1 / n)
原文:https://www.cnblogs.com/double-star/p/12755583.html