python類和類關鍵字的理解

2021-09-02 16:18:26 字數 1609 閱讀 6983

1 類中的方法第乙個引數為self,它表示當前的類的物件

1 類的屬性和物件屬性 

類中用兩個下劃線開始的標識 私有屬性或方法

1)類屬性,在類中直接宣告的變數,變數可以直接用類名稱呼叫 student.cname

2)self開頭的變數屬於物件屬性或例項屬性,變數屬於例項所有

2 @property ,@birth.setter @staticmethod @classmethod 

3 __dict__  

用物件呼叫則返回 物件的字典屬性 

用類直接呼叫,返回類的字典屬性列表

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import sys

'''@property 可以將python定義的函式「當做」屬性訪問,從而提供更加友好訪問方式,

但是有時候setter/getter也是需要的,訪問的時候直接用物件.方法名稱直接呼叫

@birth.setter 設定屬性的setter方法

@staticmethod 定義類中的靜態方法,可以直接用類名.方法名 呼叫

@classmethod 類方法註解定義,此方法第乙個引數是類名稱

'''class student(object):

@property

def birth(self):

return self._birth

@birth.setter

def birth(self, value):

self._birth = value

@property

def age(self):

hasattr(self, "_birth")#判斷物件是否有某個屬性

getattr(self, "_birth")#獲取屬性的值

setattr(self,'name','wang')# 設定屬性的值

print(getattr(self, "name") ) #

return 2014 - self._birth

@staticmethod

def f1( ):

# print(__dict__)

print('2222222')

@classmethod

def f2(cls,a):

print(cls)

print( a )

if __name__ == '__main__':

s = student();

s.birth=2015

# print(s.age)

# print(sys.path)

# print(sys.modules)

student.f1()

student.f2('1111111')

print(sys.modules)

student.birth

student.cname

#__dict__是物件屬性的字典

print(s.__dict__ )

#類 字典屬性 列表

print(student.__dict__ )

base 關鍵字 類

通過base 關鍵字訪問基類的成員 呼叫基類上已被其他方法重寫的方法。指定建立派生類例項時應呼叫的基類建構函式。基類訪問只能在建構函式 例項方法或例項屬性訪問器中進行。從靜態方法中使用 base 關鍵字是錯誤的。例項 using system public class parent string p...

類的幾個關鍵字

1 成員變數和區域性變數的區別 1 區域性變數 在方法中或者方法上 區域性變數在棧記憶體中 區域性變數隨著方法的結束而消失 區域性變數在使用前必須有值。2 成員變數 在類中方法外 在堆記憶體中 隨著物件的生成而出現,隨著物件的消失而消失 在初始化時可以不賦值。2 匿名物件 1 匿名物件一般只用一次,...

類中的 this關鍵字

this可用於區分區域性變數和成員變數,因為建構函式中如果使用 this.成員變數 引數值,那麼可以在new物件時,將初始化值賦值給成員變數,否則成員變數賦值失敗,所以this可以區分成員變數和區域性變數 class person person string n 在賦值時,如果引數名和成員變數名相同...