封装-Encapsulation
介绍
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了代码数据的安全性。
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
封装原则
-
将不需要对外提供的内容都隐藏起来;
-
把属性都隐藏,提供公共方法对其访问。
多态-Polymorphism
有时一个对象会有多种表现形式,比如网站页面有个button按钮, 这个button的设计可以不一样(单选框、多选框、圆角的点击按钮、直角的点击按钮等),尽管长的不一样,但它们都有一个共同调用方式,就是onClick()方法。我们直要在页面上一点击就会触发这个方法。点完后有的按钮会变成选中状态、有的会提交表单、有的甚至会弹窗。这种多个对象共用同一个接口,又表现的形态不一样的现象,就叫做多态( Polymorphism )。
class Animal:
def sound(self):
print("叫唤呀...")
class Cat:
def sound(self):
print("喵喵喵...")
class Dog:
def sound(self):
print("汪汪汪...")
animal = Animal()
dog = Dog()
cat = Cat()
animals = (animal, dog, cat)
for a in animals:
a.sound()
输出
叫唤呀...
汪汪汪...
喵喵喵...