一、封装java
何时用函数?python
各个函数之间是独立的且无共用的数据。函数
何时用类?spa
函数之间是相关的,且有共用的数据,则能够使用类来封装。对象
所谓的封装:继承
(1)使用构造方法将内容封装到 对象 中。get
(2)经过对象直接获取被封装的内容或者经过self间接获取被封装的内容。it
class A:class
def __init__(self, name, age):变量
self.name = name
self.age = age
def get(self):
print(self.name)
# 实例化
obj = A()
obj.get() 等价于 obj.get(obj)
# 调用的时候,会将对象obj自身赋值给self变量
self = obj
self.name 等价于 obj.name
self.age 等价于 obj.age
二、继承
同现实中的继承同样。
猫能够:喵喵叫、吃、喝、拉、撒
狗能够:汪汪叫、吃、喝、拉、撒
动物:吃、喝、拉、撒
猫:喵喵叫(猫继承动物的功能)
狗:汪汪叫(狗继承动物的功能)
对于面向对象的继承来讲,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类,没必要
一一实现每一个方法。
当类是经典类时,多继承状况下,会按照深度优先方式查找
当类是新式类时,多继承状况下,会按照广度优先方式查找
若是当前类继承了object,那么当前类即是新式类;
若是当前类的父类继承了object,那么当前类即是新式类;
除了这2种状况,其余类都是经典类。
三、多态
在Java或C#中定义函数参数时,必须指定参数的类型。
好比java定义函数:
public static int sum(int num1, int num2) {
# 函数体
}
在python中不用指定类型,能够直接用。
好比:
def sum(num1, num2):
# 函数体