欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于對python中self的深入理解

 更新時間:2022年09月15日 12:36:41   作者:綠蘿12345  
self代表類的實例,而非類,下面這篇文章主要給大家介紹了關(guān)于對python中self的深入理解,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

假設(shè)有一個類nameMain(), 如最下面代碼

  • 類 : 一個抽象的模板??梢岳斫鉃槌橄笤O(shè)計圖
  • 類名:類的名字。
    查看/實現(xiàn)方式 :print(nameMain)或者print(self.class)
  • 類的實例:即類創(chuàng)建的對象,類每創(chuàng)建一個實例就開辟新的內(nèi)存地址指向這個創(chuàng)建的實例。抽象設(shè)計圖具體實現(xiàn)的東西
    查看/實現(xiàn)方式 : a=nameMain(帶參/無參)
  • self : 表示類創(chuàng)建的實例/對象本身,指向當前創(chuàng)建對象的內(nèi)存地址。在__init__魔方方法中創(chuàng)建

類可以創(chuàng)建很多不同的實例,這些實例又有自己特定的特征,如何很好的調(diào)用和匹配好 所創(chuàng)建的實例對象 及其特征 就需要self。

理解:

例如 :類中創(chuàng)建了對象a和對象b, self對象就是a和b對象的抽象的統(tǒng)稱,關(guān)于對象a和對象b的特征,可以用self來調(diào)用,當self指向a時就指向a的內(nèi)存地址,可以調(diào)用a的特征;同理self指向?qū)ο骲就指向b的內(nèi)存地址,就可以調(diào)用b的特征。

比如 : 可以把 對象a 和 對象b 理解成 客戶a 和 客戶b, 類理解為某個房子。這時候客戶a和客戶b都買了同一個設(shè)計圖出的房子,但是他們想要自己的裝修風格,這些裝修風格就是對象a、對象b的特征。當裝修隊開始裝修房子時,先選擇具體客戶,然后根據(jù)客戶要求裝修;而先服務(wù)哪個客戶呢?客戶就選擇self客戶管理工具指向的現(xiàn)在的客戶,同時self還可以調(diào)用對象的特征,這時候根據(jù)self指示的客戶和self調(diào)用客戶要求的裝修風格來裝修房子。

  • 客戶a=類的對象a;
  • (客戶要求的)裝修風格=對象a/b的特征;
  • 房型=類 裝修隊=代碼的執(zhí)行

具體代碼:

""" self的理解 :
    1, self表示類的實例 或 對象, 指向當前對象的內(nèi)存地址 (self不指向類本身,而是類創(chuàng)建的實例/對象)
    2, 類中定義的函數(shù)的self 與 init中self的內(nèi)存地址 + 創(chuàng)建實例的內(nèi)存地址 保持一致(都指向同一個內(nèi)存地址)
    3, self.__class__ 用來查看當前類名,相當于print(nameMain)
    """
class nameMain(object):
    def __init__(self, name, age):
        print("init中的self={}".format(self))
        print("self.__class__用于查看當前類名 : ", self.__class__)
        self.name = name
        self.age = age

    def printStu(self):
        print("def中的self={}".format(self))
        return "name={}, age={}".format(self.name, self.age)
        
if __name__ == "__main__":
    a = nameMain("immuable", 18)
    print("a = {}".format(a))  # self 打印地址=對象a的地址
    print(a.printStu())
    print()
    b=nameMain("muable", 100)  # self 打印地址=對象b的地址
    print("b = {}".format(b))
    print(b.printStu())

輸出

# 對象a
init中的self=<__main__.nameMain object at 0x0000022E78A2F8D0>
self.__class__用于查看當前類名 : ?<class '__main__.nameMain'>
a = <__main__.nameMain object at 0x0000022E78A2F8D0>
def中的self=<__main__.nameMain object at 0x0000022E78A2F8D0>
name=immuable, age=18

#對象b
init中的self=<__main__.nameMain object at 0x0000022E78A2F828>
self.__class__用于查看當前類名 : ?<class '__main__.nameMain'>
b = <__main__.nameMain object at 0x0000022E78A2F828>
def中的self=<__main__.nameMain object at 0x0000022E78A2F828>
name=muable, age=100

self的值是什么?

self的值是Python會自動賦值的,而且值是對象本身。舉例說明:類Dog,他的實例是d,那么,d調(diào)用類的方法jian(arge1,arge2)的時候,Python會自動轉(zhuǎn)為Dog.jian(d,arge1,arge2)。self的值是Dog的實例d。

以下例子,打印self的值。(打印結(jié)果中的intance是實例的意思)

總結(jié)

到此這篇關(guān)于對python中self的深入理解的文章就介紹到這了,更多相關(guān)python中self理解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python numpy數(shù)組復(fù)制使用實例解析

    python numpy數(shù)組復(fù)制使用實例解析

    這篇文章主要介紹了python numpy數(shù)組復(fù)制使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-01-01
  • python實現(xiàn)漫天飄落的七彩花朵效果

    python實現(xiàn)漫天飄落的七彩花朵效果

    要實現(xiàn)漫天飄落的七彩花朵效果,你可以使用Python的圖形庫,如Pygame或Pyglet,這些庫可以幫助你創(chuàng)建動畫和圖形效果,本文給大家介紹了如何使用python實現(xiàn)漫天飄落的七彩花朵效果,感興趣的朋友可以參考下
    2024-01-01
  • pytorch 在sequential中使用view來reshape的例子

    pytorch 在sequential中使用view來reshape的例子

    今天小編就為大家分享一篇pytorch 在sequential中使用view來reshape的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • OpenCV(python)版實現(xiàn)文本分割之水平投影法

    OpenCV(python)版實現(xiàn)文本分割之水平投影法

    本文主要介紹了OpenCV(python)版實現(xiàn)文本分割之水平投影法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-08-08
  • Linux下python制作名片示例

    Linux下python制作名片示例

    這篇文章主要介紹了Linux下python制作名片示例的相關(guān)資料,需要的朋友可以參考下
    2018-07-07
  • Python selenium模塊實現(xiàn)定位過程解析

    Python selenium模塊實現(xiàn)定位過程解析

    這篇文章主要介紹了python selenium模塊實現(xiàn)定位過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-07-07
  • django如何計算兩個TimeField的時差

    django如何計算兩個TimeField的時差

    在Django中,可以使用datetime模塊來計算兩個TimeField字段的時間差,下面通過示例代碼介紹django?計算兩個TimeField的時差,需要的朋友可以參考下
    2023-05-05
  • Pytorch中DataLoader的使用方法詳解

    Pytorch中DataLoader的使用方法詳解

    在Pytorch中,torch.utils.data中的Dataset與DataLoader是處理數(shù)據(jù)集的兩個函數(shù),用來處理加載數(shù)據(jù)集,這篇文章主要介紹了Pytorch中DataLoader的使用方法,需要的朋友可以參考下
    2022-09-09
  • Python自動巡檢H3C交換機實現(xiàn)過程解析

    Python自動巡檢H3C交換機實現(xiàn)過程解析

    這篇文章主要介紹了Python自動巡檢H3C交換機實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-08-08
  • 基于PyQt5制作一個表情包下載器

    基于PyQt5制作一個表情包下載器

    每次和朋友聊天苦于沒有表情包,而別人的表情包似乎是取之不盡、用之不竭。作為一個程序員哪能甘愿認輸,所以本文將用Python制作一個表情包下載器供大家斗圖,需要的可以參考一下
    2022-03-03

最新評論