中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Python中關于面向對象概念

發布時間:2021-10-08 15:28:09 來源:億速云 閱讀:134 作者:iii 欄目:開發技術

本篇內容主要講解“如何理解Python中關于面向對象概念”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何理解Python中關于面向對象概念”吧!

面向對象編程的2個非常重要的概念:
類和對象

對象是面向對象編程的核心,在使用對象的過程中,為了將具有共同特征和行為的一組對象抽象定義,提出了另外一個新的概念——類。

類用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。

類是由三部分構成:

類的名稱
類的屬性
類的方法

格式如下:

# 類名
class Func(object):
    # 類的屬性
    i=123
    # 類的方法
    def f(self):
        print('6666')

# 實例化類
a=Func()
# 訪問類的屬性
print(a.i)
# 調用類的方法
a.f()

object 是Python 里所有類的最頂級父類;
類名 的命名規則按照"大駝峰命名法";
f 是一個實例方法,第一個參數一般是self,表示實例對象本身,當然了可以將self換為其它的名字,其作用是一個變量 這個變量指向了實例對象

魔法方法

1.init

Python 的類里提供的,兩個下劃線開始,兩個下劃線結束的方法,就是魔法方法,init()就是一個魔法方法,通常用來做屬性初始化 或 賦值 操作(作用)。
如果類面沒有寫__init__方法,Python會自動創建,但是不執行任何操作
如果為了能夠在完成自己想要的功能,可以自己定義__init__方法
所以一個類里無論自己是否編寫__init__方法 一定有__init__方法

案例:

# 類名
class Func(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    # 類的屬性
    i=123
    # 類的方法
    def f(self):
        print('我的名字叫%s,今年%d歲了'%(self.name,self.age))

# 實例化類
a=Func('大飛',24)
# 訪問類的屬性
print(a.i)
# 調用類的方法
a.f()

init(self)中,默認有1個參數名字為self,如果在創建對象時傳遞了2個實參,那么__init__(self)中出了self作為第一個形參外還需要2個形參,例如__init__(self,x,y)

注意:
1). 在類內部獲取 屬性 和 實例方法,通過self獲取;
2). 在類外部獲取 屬性 和 實例方法,通過對象名獲取。
3). 如果一個類有多個對象,每個對象的屬性是各自保存的,都有各自獨立的地址;
4). 但是實例方法是所有對象共享的,只占用一份內存空間。類會通過self來判斷是哪個對象調用了實例方法。

2.str

str 如果一個類中定義了__str__方法,在打印對象時,默認輸出該方法的返回值,沒有定義會返回對象的地址

class Func(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age

a=Func('大飛',24)
print(a)

如何理解Python中關于面向對象概念

調用__str__方法,輸出結果是該方法的返回值

class Func(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __str__(self):
        return '我的名字叫%s,今年%d歲了'%(self.name,self.age)

a=Func('大飛',24)
print(a)


總結:實例化對象時會調用__str__()方法,如果沒有定義__str__()方法會打印一個對象的地址,如果定義__str__()并且有返回值,就會打印其中的返回值

3.del

當刪除對象時,python解釋器會默認調用一個方法,這個方法為__del__()方法

class Dog(object):
    def __init__(self,name):
        self.name =name
        print("__init__方法被調用")
    def __del__(self):
        print("__del__方法被調用")
        print("python解釋器開始回收%s對象了" % self.name)
p = Dog('Bob')
del p

到此,相信大家對“如何理解Python中關于面向對象概念”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘谷县| 维西| 屏边| 林口县| 松阳县| 调兵山市| 伊通| 仪陇县| 旌德县| 横山县| 荔浦县| 敖汉旗| 巴南区| 任丘市| 台州市| 赫章县| 洛浦县| 育儿| 阿拉善左旗| 治多县| 离岛区| 鄂托克旗| 灌南县| 梅河口市| 进贤县| 通化县| 木兰县| 深州市| 平泉县| 合川市| 莆田市| 宝坻区| 金川县| 诸城市| 辉县市| 睢宁县| 兰州市| 南城县| 棋牌| 桓台县| 宽甸|