python-面向對象-類

面向對象基礎

面向對象編程(抽象)

對象:特徵和技能的結合體python

面向對象編程:一個個對象進行交互編程

優勢:擴展性很是強app

缺點:邏輯很是複雜code

類與對象

類(類別):一系列具備相同特徵和技能的對象對象

現實世界中先有對象,後有類it

# 定義學生

    # 姓名: 豬瑞星
    # 學號: 222222
    # 學校: oldboy
        # 技能: 選課,三十六變


    # 姓名: 孔悟空
    # 學號: 111111
    # 學校: oldboy
        # 技能: 選課,七十二變

    # 姓名: 雷公
    # 學號: 666666
    # 學校: oldboy
        # 技能: 選課,電閃雷鳴,開車
        
# 定義老師

    # 姓名:tank
    # 學校:oldboy
        # 技能:教課,piao

    # 姓名:nick
    # 學校:oldboy
        # 技能:教課,看書

Python中先有類,再有對象面向對象編程

class 類名(駝峯體):  # 定義類,會直接運行類體代碼
    # 定義一系列特徵
    # 定義一系列方法
    
對象1 = 類名()  # 實例化出對象

給對象定製獨有的特徵

class OldBoyStudent:
    school = 'oldboy'
    
    def __init__(self, name ,age):
        self.name = name
        self.age = age

    def choose_course(self):
        print('is choosing course')
        
stu1 = OldBoyStudent('a',1) 
stu1.school

stu2 = OldBoyStudent('b',2) 
stu2.scool

對象的屬性查找順序

class OldBoyStudent:
    school = 'oldboy'
    name = 'c'
    
    def __init__(self, name ,age):
        self.name = name
        self.age = age

    def choose_course(self):
        print('is choosing course')
        
stu1 = OldBoyStudent('a',1) 
stu1.school

stu2 = OldBoyStudent('b',2) 
stu2.scool

先從對象自己查找,而後從類中查找,類中也沒有則報錯class

類與對象的綁定方法

class OldBoyStudent:
    school = 'oldboy'
    
    def __init__(self, name ,age):
        self.name = name
        self.age = age

    def choose_course(self):
        print(id(self))  # 10000
        print(self.school)
        print(f'{self.name} is choosing course')
        
stu1 = OldBoyStudent('a',1) 
stu1.choose_course()  # self是對象自己
print(id(stu1))  # 10000

OldBoyStudent.choose_course(stu1)

類與數據類型

lis = list([1,2,3])
lis2 = list([1,2,3])
lis.append(4)
# list.append(lis,4)

對象的高度整合

對象會有一大堆屬性/數據,還會有一大堆方法來操做這些屬性,而後對於不一樣的對象,這些屬性又不一樣.基礎

相關文章
相關標籤/搜索