初識對象
生活中數(shù)據(jù)的組織
學校開學,要求學生填寫自己的基礎(chǔ)信息,一人發(fā)一張白紙,讓學生自己填
改為登記表,打印出來讓學生自行填寫:
?程序中數(shù)據(jù)的組織
在程序中簡單使用變量來記錄學生信息
?使用變量記錄數(shù)據(jù)太亂了。
- 如果程序中也和生活中一樣 可以設(shè)計表格
- 可以將設(shè)計的表格打印出來
- 可以將打印好的表格供人填寫內(nèi)容
那么數(shù)據(jù)的組織就非常方便了。
使用對象組織數(shù)據(jù)
在程序中是可以做到和生活中那樣,設(shè)計表格、生產(chǎn)表格、填寫表格的組織形式的。
- 在程序中設(shè)計表格,我們稱之為:設(shè)計類(class)
class Student: name = None # 記錄學生姓名
- 在程序中打印生產(chǎn)表格,我們稱之為:創(chuàng)建對象
# 基于類創(chuàng)建對象 stu_1 = Student() stu_2 = Student()
- 在程序中填寫表格,我們稱之為:對象屬性賦值
stu_1.name = "周杰倫" # 為學生1對象賦予名稱屬性值 stu_2.name = "張三" # 為學生2對象賦予名稱屬性值
總結(jié):
1. 生活中或是程序中,我們都可以使用設(shè)計表格、生產(chǎn)表格、填寫表格的形式組織數(shù)據(jù)
2. 進行對比,在程序中:
- 設(shè)計表格,稱之為:設(shè)計類(class)
- 打印表格,稱之為:創(chuàng)建對象
- 填寫表格,稱之為:對象屬性賦值
成員方法
類的定義和使用
我們簡單了解到可以使用類去封裝屬性,并基于類創(chuàng)建出一個個的對象來使用。 現(xiàn)在我們來看看類的使用語法:
- class是關(guān)鍵字,表示要定義類了
- 類的屬性,即定義在類中的變量(成員變量)
- 類的行為,即定義在類中的函數(shù)(成員方法)
創(chuàng)建類對象的語法:對象 = 類名稱()
成員變量和成員方法
什么是類的行為(方法)呢?
class Student:
name = None # 學生的姓名
age = None # 學生的年齡
def say_hi(self):
print(f"Hi大家好,我是{self.name}")
stu = Student()
stu.name = "張三"
stu.age = 25
stu.say_hi() # Hi大家好,我是張三
?可以看出,類中:
- 不僅可以定義屬性用來記錄數(shù)據(jù)
- 也可以定義函數(shù),用來記錄行為
其中:
- 類中定義的屬性(變量),我們稱之為:成員變量
- 類中定義的行為(函數(shù)),我們稱之為:成員方法
定義在類內(nèi)部的函數(shù) 稱之為方法
成員方法的定義語法
在類中定義成員方法和定義函數(shù)基本一致,但仍有細微區(qū)別:
def 方法名(self, 形參1, ......, 形參N):
方法體
可以看到,在方法定義的參數(shù)列表中,有一個:self關(guān)鍵字
self關(guān)鍵字是成員方法定義的時候,必須填寫的。
- 它用來表示類對象自身的意思
- 當我們使用類對象調(diào)用方法的是,self會自動被python傳入
-
在方法內(nèi)部,想要訪問類的成員變量,必須使用self
def say_hi(self): print(f"Hi大家好,我是{self.name}")
注意事項
self關(guān)鍵字,盡管在參數(shù)列表中,但是傳參的時候可以忽略它。 如:
class Student:
name = None
def say_hi(self):
print("Hello 大家好")
def say_hi2(self, msg):
print(f"Hello 大家好,{msg}")
stu = Student()
stu.say_hi() # 調(diào)用的時候無需傳參
stu.say_hi2("很高興認識大家") # 調(diào)用的時候,需要傳msg參數(shù)
結(jié)果:
Hello 大家好
Hello 大家好,很高興認識大家
?可以看到,在傳入?yún)?shù)的時候,self是透明的,可以不用理會它。
總結(jié)
?類是由哪兩部分組成呢?
- 類的屬性,稱之為:成員變量
- 類的行為,稱之為:成員方法
注意:函數(shù)是寫在類外的,定義在類內(nèi)部,我們都稱之為方法哦
類和成員方法的定義語法
- self的作用 表示類對象本身的意思
- 只有通過self,成員方法才能訪問類的成員變量
- self出現(xiàn)在形參列表中,但是不占用參數(shù)位置,無需理會
類和對象
現(xiàn)實世界的事物和類
?
?現(xiàn)實世界的事物也有屬性和行為,類也有屬性和行為。
使用程序中的類,可以完美的描述現(xiàn)實世界的事物
類和對象? 對象名 = 類名稱()
基于類創(chuàng)建對象的語法:
為什么非要創(chuàng)建對象才能使用呢?
????????類只是一種程序內(nèi)的“設(shè)計圖紙”,需要基于圖紙生產(chǎn)實體(對象),才能正常工作
????????????????????????這種套路,稱之為:面向?qū)ο缶幊?/strong>
使用類和對象描述現(xiàn)實事物
在現(xiàn)實中,生產(chǎn)事物
?在程序中通過類來描述
?基于類創(chuàng)建對象
?
class Clock:
id = None # 序列號
price = None # 零售價
def ring(self):
import winsound
winsound.Beep(2000, 3000)
clock1 = Clock() # 基于類創(chuàng)建對象
clock1.id = "003032"
clock1.price = 100
print(f"鬧鈴ID:{clock1.id},價格:{clock1.price}")
clock1.ring() # 使用對象的屬性和行為clock1 = Clock()
clock2 = Clock() # 基于類創(chuàng)建對象
clock2.id = "003033"
clock2.price = 152
print(f"鬧鈴ID:{clock2.id},價格:{clock2.price}")
clock2.ring() # 使用對象的屬性和行為
總結(jié):
?1. 現(xiàn)實世界的事物由什么組成?
- 屬性
- 行為
類也可以包含屬性和行為,所以使用類描述現(xiàn)實世界事物是非常合適的
2. 類和對象的關(guān)系是什么?
- 類是程序中的“設(shè)計圖紙”
- 對象是基于圖紙生產(chǎn)的具體實體
3. 什么是面向?qū)ο缶幊蹋?mark hidden color="red">文章來源:http://www.zghlxwxcb.cn/news/detail-605997.html
- 面向?qū)ο缶幊叹褪牵褂脤ο筮M行編程。
即,設(shè)計類,基于類創(chuàng)建對象,并使用對象來完成具體的工作文章來源地址http://www.zghlxwxcb.cn/news/detail-605997.html
到了這里,關(guān)于Python 面向?qū)ο螅ㄒ唬ǔ蓡T方法、類和對象)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!