學習目標:
- 理解面向對象編程(OOP)的基本思想:類,對象
- 掌握類的定義,構造方法,實例屬性和方法
- 熟悉self的含義與作用
- 學會用類組織和封裝代碼,初步構建自己的“對象世界”
一、什么是面向對象?
面向對象(Object-Oriented Programming)是一種將數據和操作數據的方法組織在一起的編程范式。
術語 | 含義 |
類(class) | 模板,藍圖,定義了對象的屬性和行為 |
對象(object) | 類的具體實例,真實存在的“某一個” |
方法 | 類中定義的函數。作用于對象本身 |
屬性 | 存儲對象狀態的變量(通常通過構造函數設定) |
?二、定義類和創建對象
1.定義一個最簡單的類
class Student:pass
用class類名:定義一個類,類名一般大寫開頭。pass表示“占位”
2.創建對象(實例)
stu1 = Student()
print(stu1) # 輸出:<__main__.Student object at ...>
類名加括號即為“創建對象”,也叫實例化
三、構造函數(init)與實例屬性
class Student:def __init__(self,name,age):self.name = name #實例屬性self.age = age#創建對象
stu1 = Student("Alice",20)
print(stu1.name) # Alice
print(stu1.age) # 20
注釋說明:
- __init__是構造方法,創建對象時自動調用;
- self代表當前實例本身;
- self.name是對象的屬性,每個對象獨立擁有;
- Student("Alice",20)會自動把"Alice"傳給name,20傳給age;
四、定義實例方法?
class Student:def __init__(self,name,age):self.name = nameself.age = agedef introduce(self):print(f"我是{self.name},今年{self.age}歲")stu1 = Student("Bob",21)
stu1.introduce()
方法必須以self作為第一個參數,調用時不用寫self
五、練習:自定義類管理多個對象
定義一個Book類
class Book:def __init__(self,title,author,price):self.title = titleself.author = author self.price = pricedef info(self):return f"《{self.title}》-{self.author},售價{self.price}元"# c創建多個對象
book1 = Book("三體","劉慈欣",49)
book2 = Book("活著",“余華”,39)#輸出信息
print(book1.info())
print(book2.info())
輸出:
《三體》 - 劉慈欣,售價 49 元
《活著》 - 余華,售價 39 元
六、OOP初學者易錯點
錯誤用法 | 正確用法 | 原因 |
name =name | self.name = name | 未保存到對象屬性中 |
忘寫self參數 | def introduce(self) | Python方法必須有self參數 |
stu1.introduce(self) | stu1.introduce() | 調用時不需要傳self |
多個對象共享數據混亂 | 每個對象獨立數據 | 屬性屬于實例,不要用類變量混用 |