程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

類與對象(Python)

編輯:Python

屬性與方法

屬性用來描述類的一些特征,如顏色,品牌,型號都屬於手機屬性。

方法用來表現這個類的一些功能,如拍照,打電話是手機的方法。

格式

使用關鍵字class創建一個類,下面給一個案例:

class Phone():
def call(self,who):
return f"正在撥打電話給{who}"
def sendmessage(self,who,txt):
return f"正在發短信給{who},內容為{txt}" 

注意

  1. Phone是指類的名稱,為了區分類與函數,類的名稱首字母建議大寫。
  2. 括號後的冒號表明接下來縮進的代碼是屬於這個類的。
  3. def後面有四個空格 表示一個縮進,表示該代碼塊屬於這個類。
  4. 類中的兩個特殊函數,稱為方法。方法又被稱為成員函數,用來表現這個類的一些功能。成員函數的第一個參數為self

特殊參數self

self參數,由程序自動傳入的參數,指調用該方法的對象。第一個參數為self,是定義實例方法的固定寫法。

對象

概念

對象是以類作為模板創建的。

實例

這裡用Phone類來實例化兩個對象表示你的手機和我的手機。

class Phone():
def call(self,who):
return f"正在撥打電話給{who}"
def sendmessage(self,who,txt):
return f"正在發短信給{who},內容為{txt}"
myphone=Phone() //myphone變量名,為對象設定的名稱
yourphone=Phone() //括號表示調用你Phone實例化一個對象
ret=myphone.call("Tony") //Tony就屬於實參
print(ret)
ret2=yourphone.sendmessage("Jenney","中午吃啥?")
print(ret2) 

注意

  1. 裡面的“.”用來連接對象名與對象的方法,稱為句點表示法
  2. 調用對象方法時,不需要為self參數傳遞參數
  3. self由程序自動傳遞,不需要手動傳遞實參

類的屬性與初始化

初始化方法__init__

init左右兩邊各有兩個下劃線,即整個名稱共有四個下劃線。

初始化在這裡類似於出廠設置,表示“開始時做好准備。”會在創建對象時自動被調用。

實例

class Phone():
def __init__(self,bd,clr):
print("創建實例對象時,自動調用此方法")
self.brand=bd //因為這裡還沒有創建對象,所有對象名用self參數代替
self.color=clr
myphone=Phone("華為","白色")
yourphone=Phone("蘋果","黑色")
print(f"我有一個{myphone.color}的{myphone.brand}手機")
print(f"你有一個{yourphone.color}的{yourphone.brand}手機")

注意:

  1. self參數是調用方法時有程序自動傳入的參數,指實例化後的對象
  2. 與之前創建的變量不同,brand與color是專屬於該類對象的變量,只能被該類的對象使用。
  3. bd和clr是初始化參數的兩個形參名,接受傳遞後的數據後賦值給對象的兩個屬性brand與color

通過前面的幾個例子,我們可以知道,對象的屬性和方法需要用句點表示法將對象名與方法名連接在一起。但是在定義類時,由於我們還不知道要定義哪些對象,所以self的作用就是將實例化的對象名稱(引用)傳遞到方法中。比如在myphone對象中,self.brand代表的是myphone.brand

實際上我們平時創建的字符串、列表、元組等本質上都是該類型的一個對象。所以說直接調用的print()、range()函數,用句點表示的append()、keys()等為某個對象的方法。

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved