python和对象复习_面向对象阶段复习
面向對象階段復習
一、類,對象,屬性方法調用
class 類名(父類1,父類2):
靜態屬性 = '' # 靜態屬性,也叫類屬性
def __init__(self): # 初始化方法
self.name = 'aa'
def func(self): # 動態屬性 方法
print(self.age) # 這里的age可以是實例化后,通過對象.age = xxx 的方式添加的屬性
對象 = 類名() # 實例化
對象.方法名() # 調用類里面的方法
對象.屬性名 # 調用類里面的屬性 對象即類里面的self
對象.name # 調用name屬性
對象.age = 18 # 添加屬性,與前面的print(self.age)相應
對象.func() # 實際上也等于類名.func(對象)
二、組合:表達什么有什么的問題,一個類都屬性是另一個類的對象
# 組合:class 里面有 course
class course:
def __init__(self,name,price,period):
self.name = name
self.price = price
self.period = period
class class:
def __init__(self,name,course):
self.name = name
self.course = course # class類的屬性course
#self.course_name = 'python' # 賦值
python = course('python xxx',18000,'6 months') # 實例化對象 course類的實例化對象
pys1 = class('pys_1',python) # 實例化對象,把python這個對像傳入course中,即course的相關屬性也對應傳入
print(pys1.course.name) # 可以通過pys1查看到course的信息 組合的功能體現在這里
python.name = 'python sss' # 可以通過組合,修改一些參數,比較簡單
print(pys1.course.name)
運行結果:
python xxx
python sss
命名空間:類和對象分別存在不同的命名空間中,互不影響
三、面向對象的三大特征:繼承,多態,封裝
1、繼承
單繼承:
父類(超類,基類)
子類(派生類):派生方法和派生屬性
子類的對象在調用方法和屬性:先用自己,自己沒有采用父類的
多繼承:
不會超過三個父類,最好不要超過三層
如果子類自己有用自己的,如果沒有就用距離子類最近的那個父類的方法
抽象類和接口類
經典類和新式類,繼承規則不同,深度優先和廣度優先原則(面試的時候有可能會問到,平時用不到)
super只能在python3中使用 mro,是根據mro廣度優先順序找上一個類
2、多態(面試)
多態和鴨子類下
3、封裝(面試)
私有的
__m名字
只能在類的內部調用,子類都無法繼承
三個裝飾器“
@property ?? 規范,與@name.setterj結合用可以做出一些設置
@staticmethod
@classmethod ? 當一個方法只使用了類的靜態變量時,就給這個方法加上@classmethod裝飾器,默認傳cls參數
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的python和对象复习_面向对象阶段复习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 系统托盘_使用 PySid
- 下一篇: websocket python爬虫_p