日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

属性被分为八大类不包括_Python语言---私有属性

發布時間:2023/12/1 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 属性被分为八大类不包括_Python语言---私有属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

屬性分為實例屬性與類屬性

方法分為普通方法,類方法,靜態方法

一:屬性:

   盡量把需要用戶傳入的屬性作為實例屬性,而把同類都一樣的屬性作為類屬性。實例屬性在每創造一個實例時都會初始化一遍,不同的實例的實例屬性可能不同,不同實例的類屬性都相同。從而減少內存。

  1:實例屬性:

    最好在__init__(self,...)中初始化

    內部調用時都需要加上self.

    外部調用時用instancename.propertyname

  2:類屬性:

    在__init__()外初始化

    在內部用classname.類屬性名調用

    外部既可以用classname.類屬性名又可以用instancename.類屬性名來調用

  3:私有屬性:

    1):單下劃線_開頭:只是告訴別人這是私有屬性,外部依然可以訪問更改

    2):雙下劃線__開頭:外部不可通過instancename.propertyname來訪問或者更改

      實際將其轉化為了_classname__propertyname

二:方法

  1:普通類方法:

    def fun_name(self,...):

      pass

    外部用實例調用

  2:靜態方法:@staticmethod

      不能訪問實例屬性!!! 參數不能傳入self!!!

      與類相關但是不依賴類與實例的方法!!

  3:類方法:@classmethod

      不能訪問實例屬性!!! 參數必須傳入cls!!!

      必須傳入cls參數(即代表了此類對象-----區別------self代表實例對象),并且用此來調用類屬性:cls.類屬性名

  *靜態方法與類方法都可以通過類或者實例來調用。其兩個的特點都是不能夠調用實例屬性

class A: member = "this is a test." def __init__(self): pass @classmethod def Print1(cls): print "print 1: ", cls.member def Print2(self): print "print 2: ", self.member @classmethod def Print3(paraTest): print "print 3: ", paraTest.member @staticmethod def print4(): print "hello"

總結:類屬性與類方法是類固有的方法與屬性,不會因為實例不同而改變,寫他們的目的是減少多實例時所創造出來的內存空間,加快運行速度。

-----尚學堂百戰程序員筆記(18)

總結

以上是生活随笔為你收集整理的属性被分为八大类不包括_Python语言---私有属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。