Python 物件導向的實現方法

2021-10-23 04:28:52 字數 3600 閱讀 3999

類是物件相似資料與功能的集合體

所以類體中最常見的是變數與函式的定義,但是類體其實是可以包含任意其他**的

注意:類體**是在類定義階段就會立即執行,會產生類的命名空間

class

student

:# 1、變數的定義

stu_school =

'oldboy'

# 2、功能的定義

deftell_stu_info

(stu_obj)

:print

('學生資訊:名字:%s 年齡:%s 性別:%s'%(

stu_obj[

'stu_name'],

stu_obj[

'stu_age'],

stu_obj[

'stu_gender'])

)def

set_info

(stu_obj, x, y, z)

: stu_obj[

'stu_name'

]= x

stu_obj[

'stu_age'

]= y

stu_obj[

'stu_gender'

]= z

# print('*****===>')

print

(student.__dict__)

屬性訪問的語法

print

(student.stu_school)

# student.__dict__['stu_school']

print

(student.set_info)

# student.__dict__['set_info']

student.x=

1111

#student.__dict__['x]=111

print

(student.__dict__)

stu1_obj = student(

)stu2_obj = student(

)stu3_obj = student(

)print

(stu1_obj.__dict__)

print

(stu2_obj.__dict__)

print

(stu3_obj.__dict__)

為物件定製自己獨有的屬性

問題1:**重複

問題2:屬性的查詢順序

stu1_obj.stu_name=

'egon'

# stu1_obj.__dict__['stu_name']='egon'

stu1_obj.stu_age=

18# stu1_obj.__dict__['stu_age']=18

stu1_obj.stu_gender=

'male'

# stu1_obj.__dict__['stu_gender']='male'

# print(stu1_obj.__dict__)

stu2_obj.stu_name=

'lili'

stu2_obj.stu_age=

19stu2_obj.stu_gender=

'female'

# print(stu2_obj.__dict__)

stu3_obj.stu_name=

'jack'

stu3_obj.stu_age=

20stu3_obj.stu_gender=

'male'

# print(stu2_obj.__dict__)

解決問題一:

# def init(obj,x,y,z):

# obj.stu_name=x

# obj.stu_age=y

# obj.stu_gender=z

## init(stu1_obj,'egon',18,'male')

# init(stu2_obj,'lili',19,'female')

# init(stu2_obj,'jack',20,'male')

一:先定義類

class

student

:# 1、變數的定義

stu_school =

'oldboy'

# 空物件,'egon',18,'male'

def__init__

(obj, x, y, z)

: obj.stu_name = x # 空物件.stu_name='egon'

obj.stu_age = y # 空物件.stu_age=18

obj.stu_gender = z # 空物件.stu_gender='male'

# return none

# 2、功能的定義

deftell_stu_info

(stu_obj)

:print

('學生資訊:名字:%s 年齡:%s 性別:%s'%(

stu_obj[

'stu_name'],

stu_obj[

'stu_age'],

stu_obj[

'stu_gender'])

)def

set_info

(stu_obj, x, y, z)

: stu_obj[

'stu_name'

]= x

stu_obj[

'stu_age'

]= y

stu_obj[

'stu_gender'

]= z

# print('*****===>')

二:再呼叫類產生物件

呼叫類的過程又稱之為例項化,發生了三件事

先產生乙個空物件

python會自動呼叫類中的__init__方法然將空物件已經呼叫類時括號內傳入的引數一同傳給__init__方法

返回初始完的物件

stu1_obj = student(

'egon',18

,'male'

)# student.__init__(空物件,'egon',18,'male')

stu2_obj=student(

'lili',19

,'female'

)stu3_obj=student(

'jack',20

,'male'

)print

(stu1_obj.__dict__)

print

(stu2_obj.__dict__)

print

(stu3_obj.__dict__)

會在呼叫類時自動觸發執行,用來為物件初始化自己獨有的資料

__init__內應該存放是為物件初始化屬性的功能,但是是可以存放任意其他**,想要在類呼叫時就立刻執行的**都可以放到該方法內

__init__方法必須返回none

Python物件導向實現方法總結

總結 類的定義 很久以前,語言都是面向過程的,經過計算機科學家的探索,出現了物件導向。物件導向可以解釋生活中很多東西。比如人,人就是個物件,有引數,比如器官,身高啥的,有方法,比如跑步,學習等。不扯那麼多了。物件就是類,在python中用class定義類。類裡面有兩大部分,一部分是屬性,一部分是方法...

Python物件導向 方法

方法名稱 樣式可被誰呼叫 可呼叫誰 用處類方法 方法的第乙個引數是類 類 例項 類變數修改類屬性 靜態方法 方法不需要任何固定的引數 類 例項 自身的變數 只能做內部的處理 類中函式 就是在類裡面寫了個函式 不可外部呼叫 自身的變數 內部私有化部分 例項方法 就是有self接收例項的這種方法 cla...

python 物件導向的內建方法

要求 了解即可,能用最好 1.print obj str obj s obj 都呼叫obj.str 方法,若類中沒有找 repr 方法,若沒有找父類的 str 方法,若沒有找 repr 方法,直到object 2.r obj repr obj 都呼叫obj.repr 方法,若類中沒有找到 repr ...