1. 程式人生 > >python基礎 類與對象

python基礎 類與對象

概念 對象 返回值 int 查看 pre eat python基礎 對象產生

類與對象的概念

  類即類別、種類,是面向對象設計最重要的概念,對象是特征與技能的結合體,而類則是一系列對象相似的特征與技能的結合體。

  • 在現實世界中:肯定是先有對象,再有類
  • 在程序中:務必保證先定義類,後產生對象

在Python中程序中的類用class關鍵字定義,而在程序中特征用變量標識,技能用函數標識,因而類中最常見的無非是:變量和函數的定義

  

class Student:
    school=‘xxxxx‘
    def learn(self):
        print(‘is learning‘)

    def eat(self):
        print(‘is eating‘)

    def sleep(self):
        print(‘is sleeping‘)

註意:

  • 類中可以有任意python代碼,這些代碼在類定義階段便會執行,因而會產生新的名稱空間,用來存放類的變量名與函數名,可以通過Student.__dict__查看
  • 類中定義的名字,都是類的屬性,點是訪問屬性的語法。
  • 對於經典類來說我們可以通過該字典操作類名稱空間的名字,但新式類有限制

類的使用

  • 引用類的屬性
OldboyStudent.school #查
OldboyStudent.school=‘Oldboy‘ #改
OldboyStudent.x=1 #增
del OldboyStudent.x #刪
  • 調用類,或稱為實例化,得到程序中的對象
s1=Student()
s2=Student()
s3=Student()

如此,s1、s2、s3都一樣了,而這三者除了相似的屬性之外還各種不同的屬性,這就用到了__init__
  • __init__方法
該方法是在對象產生之後才會執行,只用來為對象進行初始化操作,可以有任意代碼,但一定不能有返回值
class OldboyStudent:
    ......
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    ......

s1=Student(‘rain‘,‘男‘,28) #先調用類產生空對象s1,然後調用Student.__init__(s1,‘rain‘,‘男‘,28)
s2=OldboyStudent(‘王大智‘,‘女‘,38)
 

對象的使用

對象的名稱空間可以用s2.__dict__查看,查看結果為
{‘name‘: ‘王大智‘, ‘age‘: ‘女‘, ‘sex‘: 38}

s2.name 查,等同於s2.__dict__[‘name‘]
s2.name=‘王三‘ 改,等同於s2.__dict__[‘name‘]=‘王三‘
s2.course=‘python‘ 增,等同於s2.__dict__[‘course‘]=‘python‘
del s2.course 刪,等同於s2.__dict__.pop(‘course‘)


  

python基礎 類與對象