国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python:類屬性,實例屬性,私有屬性與靜態方法,類方法,實例方法

2019-11-14 17:00:09
字體:
來源:轉載
供稿:網友

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

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

 

一:屬性:

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

  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.類屬性名

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

  

  e.g1:

  1. class A:  
  2.     member = "this is a test."  
  3.     def __init__(self):  
  4.         pass  
  5.  
  6.     @classmethod  
  7.     def Print1(cls):  
  8.         print "print 1: ", cls.member  
  9.           
  10.     def Print2(self):  
  11.         print "print 2: ", self.member  
  12.             
  13.          
  14.     @classmethod      
  15.     def Print3(paraTest):  
  16.         print "print 3: ", paraTest.member  
  17.     @staticmethod  
  18.     def print4():  
  19.         print "hello"  

 

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

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雅江县| 青川县| 浏阳市| 万盛区| 柳州市| 凤冈县| 兴和县| 通海县| 永济市| 临江市| 洞头县| 外汇| 平凉市| 塔河县| 喀喇沁旗| 谢通门县| 普安县| 广宁县| 密山市| 盐池县| 义乌市| 开阳县| 乌拉特前旗| 济宁市| 屏东县| 望城县| 扶余县| 闻喜县| 宝鸡市| 中宁县| 北流市| 财经| 扶风县| 云梦县| 正蓝旗| 莱阳市| 射洪县| 平果县| 海安县| 东阳市| 磐石市|