python——面向對象(1)

一、面向對象編程

面向對象編程(英語:Object­oriented programming,縮寫:OOP)是一種編 程理念,這種編程理念更符合我們人的邏輯思維。使用面向對象編程可以提高我 們的開發速度和代碼的重用率。面向對象的開發非常適合大型程序開發,開發速 度和後期維護都比過程化開發要好很多。

二、面向對象和麪向過程理解 面向過程和麪向對象都是用來解決問題的,只是解決問題的思路不同。 面向過程可以理解親力親爲,面向對象可以理解爲坐享其成。

例如炒菜 面向過程: 1)菜市場買菜,2)討價還價,3)洗菜,4)切菜,5)炒菜,6)吃 面向對象: 1) 點開APP,2).下訂單 3).吃 面向過程: 在生活中就是親力親爲,在程序中面向過程編程就是函數之間的一個相互調用。 以函數爲基本結構使用。 面向對象在生活中是坐享其成,別人做好的東西爲我所用。在程序中面向對象編 程是以對象爲基本結構使用。 那什麼是對象呢?

三、對象和類的相關概念

1.類 生活中的類和對象概念 類:是對一羣具有相同特徵或者行爲的事物的統稱,是抽象的,不能直接使用。

例如人類狗類貓類… 描述一個類通過行爲和特徵 行爲:會跑,會叫
特徵:黃毛,大眼睛 類可以理解爲一種事物的模板

2.對象 對象: 是由類創造出來的具體實體,可以直接使用的。例如 大黃,小白。 區分類和對象:
3. 類和對象之間的關係

(1) 先有類後有對象
(2)類只有一個對象可以有多個

4.類的設計 在程序中設計一個類,通常需要滿足一下3個要素:

類名:大駝峯命名法。
屬性:描述這類事物的特徵。
方法:描述這類事物的具體行爲。

四、定義一個簡單的類(只包含方法)

class Student:
    ID=0
    name=""
    address=""
    def say(self):
        print(self.ID,self.name,self.address)

zs=Student()
zs.ID=1003
zs.name="zs"
zs.address="西安"
zs.say()

結果:

1003 zs 西安

五、self 變量 self : 哪個對象調用方法或者屬性,self就是那個變量。 練習查看 self和 對象的內存id值是否相同。

class Person:
    def study(self):
        print("你們凌晨3點還在學習嗎")
        print("study中的id--->",id(self))

    #
    # def grilfriend(self):
    #     print("熱戀中的人")
    #     print("戀愛的人的id",id(self))
    def eat(self):
        print("每天吃3噸")
        print("eat中的id",id(self))


zht= Person()
# zht.grilfriend()
zht.study()
zht.eat()

結果:

你們凌晨3點還在學習嗎
study中的id---> 3024978813168
每天吃3噸
eat中的id 3024978813168

六、在類的外部增加屬性 方式: 對象名.屬性名=值

注意:這種方式雖然簡單,但是不推薦使用

七、init()方法 init()內置方法在創建對象的時候自動執行。 我們可以在 init()中做一些初始化操作。

練習1:創建Cat類,在 init()方法中初始化name屬性的值

class Student:
    count=0
    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.dog="小狗"
        self.cat="小貓"
        self.address="西安"
        Student.count+=1


    def say(self):
        print(f"姓名{self.name},年齡{self.age}")
        print(self.address)

zs=Student("zs",18)
zs.say()
print(zs.cat)



結果:

```python
姓名zs,年齡18
西安
小貓

八、str()方法 打印對象的名稱時默認調用的是str()方法,此方法默認返回的是對象的內存地址。

我們可以重寫 str() 方法打印對象保存的信息。

class Student:
    def __init__(self,name):
        self.name=name
    def __str__(self):
        return f"姓名是{self.name}"
zs=Student("zs")
print(str("zs"))

結果:

zs
['hh', 'b']
['hh', 'b']
['hh', 'b']
['hh', 'b']
['zs', 'ls']
['hh', 'b']
張三 -10
發佈了37 篇原創文章 · 獲贊 49 · 訪問量 4073
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章