1. 程式人生 > >python學習之-類的定義對物件的概念

python學習之-類的定義對物件的概念

類的定義格式

class Setset: #Python中類名推薦使用駝峰體,函式卻不推薦使用駝峰體

類的定義例項

class OldboyStudent:
  # 相似的特徵:
  school = 'oldboy'

  # 相似的技能
  def choose_course(self):
    print('choosing course....')

  print('=====run=======>')

PS:類體程式碼在類定義階段就會立即執行,會產生類的名稱空間,用來將類體程式碼執行過程中產生的名字都存放起來

print(OldboyStudent.school) #可以通過類直接檢視類體下的變數的記憶體地址

print(OldboyStudent.choose_course)  #可以通過類直接檢視類體下函式的記憶體

OldboyStudent.choose_course(1231)  #呼叫方式和函式一樣加括號,也可以傳入引數

 

類的用途一

類的本質就是一個名稱空間,所以第一種用途就是使用其內部的名字,類名.名字

OldboyStudent.school='OLDBOY'  #也可以直接修改類體下面變數的值

del OldboyStudent.school  #也可以直接刪除類體下的變數

OldboyStudent.xxx=111  #原理就是往類的名稱空間內新增了一個key=value的值,本質的操作就是在類下面新增了一個值

print(OldboyStudent.school.__dict__['school']) #可以檢視到值,但是不推薦這種麻煩的操作方式,還是遵循Python標準的訪問語法即類名 +'  . ' + 名字的方式

PS:類下有一個.__dict__方法,就是檢視類的名稱空間記憶體的名字,以字典形式存放

print(OldboyStudent.school)  #推薦用這種方法去呼叫

 

PS:OldboyStudent.school本質就是去OldboyStudent.school的名稱空間內找一個對應的字串形式的key,這就是呼叫原理

PS:Python中呼叫類,格式體.後面的全部成為屬性即OldboyStudent.school後面的school稱之為屬性

 

類的用途二

呼叫類來產生物件

呼叫類發生的事:會有一個返回值,該返回值就一個物件

stu1=OldboyStudent() #這裡先將類放入一個變數中

stu2=OldboyStudent()

stu3=OldboyStudent()

PS:每呼叫一次就會產生一個記憶體地址,每次呼叫的記憶體地址都是不同的

 

物件的本質也是一個名稱空間

stu1.name='王三炮'  #直接在類中新增變數值

stu1.gender='male'

stu1.age=38


stu2.name='王二炮'

stu2.gender='male'

stu2.age=18

stu3.name='王大炮'

stu3.gender='female'

stu3.age=48

print(stu1.__dict__)  #檢視名稱空間內的名字,可以檢視有沒有增加成功

print(stu2.__dict__)

print(stu3.__dict__)

print(stu1.name)  #這個就是呼叫檢視stu1下的name的值

總結:
類的本質是一個名稱空間,物件的本質也是一個名稱空間

 

 

屬性查詢
print(stu1.name) #就是去名稱空間查找了一個對應的key,如果本身有name這個屬性,則查詢成功,如果本身沒有則找到類中,如果類中沒有則報錯
print(stu1.choose_course)