01-面向?qū)ο蠡A(chǔ)

類和對象

類:是對一群具有相同特征和行為的事物的一個(gè)統(tǒng)稱,類是抽象的,是不能直接使用的。

  • 特征被稱為屬性
  • 行為被稱為方法

對象:是由類創(chuàng)建出來的一個(gè)具體存在,可以直接使用。

dir內(nèi)置函數(shù)

在標(biāo)識符/數(shù)據(jù)后輸入一個(gè).,按下Tab鍵,iPython會提示該對象能夠提供的方法列表
使用內(nèi)置函數(shù)dir傳入標(biāo)識符/數(shù)據(jù),可以查看該對象所有的屬性和方法

提示:__方法名__格式的方法是python提供的內(nèi)置屬性和方法。

In [1]: def demo(): 
   ...:     print("hello")                                                      

In [2]:                                                                         

In [2]: dir(demo)                                                               
Out[2]: 
['__annotations__',
 '__call__',
 '__class__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__str__',
 '__subclasshook__']
類的定義
class 類名
    def 方法1(self,參數(shù)列表):
    pass

    def 方法2(self,參數(shù)列表):
    pass
對象的創(chuàng)建
對象 = 類名()
class Cat:
    def eat(self):
        # 哪個(gè)對象調(diào)用,傳遞的就是該對象的引用
        print("%s 吃魚" % self.name)

    def drink(self):
        print("%s 喝水" % self.name)


# 創(chuàng)建對象
tom = Cat()
tom.name = "湯姆貓"
tom.eat()
tom.drink()

注意:可以通過給對象賦值的方法,給類增加屬性,但不推薦使用。

初始化方法

使用類名()創(chuàng)建對象時(shí),會做以下事情:

  • 給對象在內(nèi)存中分配存儲空間-創(chuàng)建對象
  • 給對象的屬性設(shè)置初始值-初始化方法init
class Cat:
    def __init__(self):
        print("這是一個(gè)初始化方法")


tom = Cat()
class Cat:
    def __init__(self, new_name):
        print("這是一個(gè)初始化方法")
        self.name = new_name
    def eat(self):
        print("%s 吃魚" % self.name)

tom = Cat("湯姆貓")
tom.eat()
del方法

在python中,當(dāng)創(chuàng)建一個(gè)對象的時(shí)候會調(diào)用init方法,而當(dāng)一個(gè)對象從內(nèi)存中銷毀的時(shí)候回調(diào)用del方法。

class Cat:
    def __init__(self, new_name):
        print("這是一個(gè)初始化方法")
        self.name = new_name

    def eat(self):
        print("%s 吃魚" % self.name)

    def __del__(self):
        print("%s 銷毀了" % self.name )

tom = Cat("湯姆貓")
tom.eat()

# del可以將一個(gè)對象從內(nèi)存中刪除
del tom

print("-" * 50)
str內(nèi)置方法
class Cat:
    def __init__(self, new_name):
        print("這是一個(gè)初始化方法")
        self.name = new_name

    def eat(self):
        print("%s 吃魚" % self.name)

    def __del__(self):
        print("%s 銷毀了" % self.name)

    def __str__(self):
        # 必須返回一個(gè)字符串
        return "我是 【%s】" % self.name

tom = Cat("湯姆貓")
tom.eat()

print(tom)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 面向?qū)ο缶幊?,Object-Oriented Programming對象是一個(gè)自包含的實(shí)體,用一組可識別的特性和行...
    Lv1_Sans閱讀 319評論 0 0
  • 一 封裝 概念:是指隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié), 僅對外提供訪問的方式 好處:講變化隔離;便于使用;提高重用性;安全...
    fordring2008閱讀 199評論 0 0
  • 維度變更已定 我不及你腳尖輕踏的落葉 似已在別樣時(shí)間 遺忘是未嘗 失散淪陷在命的折點(diǎn) 膽怯迫使言語不能在你耳邊 字...
    漫廷閱讀 272評論 0 1
  • 你是無邊無際的晨曦天空 我像孤寂無助的飛翔小鳥 愛你愛得純藍(lán)將近真湛藍(lán) 隨風(fēng)入夜 臉頰緋紅 身影驚鴻 笑容春風(fēng) 馥...
    程雨露閱讀 782評論 6 12

友情鏈接更多精彩內(nèi)容