類是物件相似資料與功能的集合體
所以類體中最常見的是變數與函式的定義,但是類體其實是可以包含任意其他**的
注意:類體**是在類定義階段就會立即執行,會產生類的命名空間
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 ...