一、封裝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):
# 函數體