python oop(4)
1-類的成員描述符(屬性)
.屬性案例
class student():
def __init__(self):
self.name=name
self.age=age
self.setname(name)
def intro(self):
print('hai,my name is '.format(self.name))
def setname(self,name):
self.name=name.upper()
s1=student('liu',19)
s2=student('mic',24)
s1.intro()----大寫
s2.intro()----大寫
.類的成員描述符是為了在類中對類的成員屬性進行相關操作而建立的一種方式
.get:獲取屬性的操作
.set:修改或者新增屬性操作
.delete:刪除屬性的操作
.如果想使用類的成員描述符,大概有三種方法
.使用類實現描述器
.使用屬性修飾符
.使用property函式
.property函式很簡單
.property(fget,fset,fdel,doc)
.案例定義乙個person類具有name,age屬性
對於任意輸入的姓名,我們希望都用大寫方式儲存
年齡我們希望內部統一用整數儲存
x=property(fget,fset,fdel,doc)
class person():
#函式的名稱可以任意
def fget(self):
return self._name*2
def fset(self):
#所有輸入的姓名以大寫形式儲存
self._name=name.upper()
def fdel(self):
self._name='noname'
name=property(fget,fset,fdel,'對name進行操作')
p1=person
p1.name='liu'
print(p1.name)----------liuliu
#執行時先呼叫了fset函式之後有呼叫了fget函式
.無論那種修飾符都是為了對成員屬性進行相應的控制
.類的方式:適合多個類中的多個屬性共用乙個描述符
.property:使用當前類中使用,可以控制乙個類中多個屬性
.屬性修飾符:適用於當前類中使用,控制乙個類中的乙個屬性
2-類的內建屬性
__dict__:以字典的形式顯示類的成員組成
__doc__:獲取類的文件資訊
__name__:獲取類的名稱,如果在模組中使用,獲取模組的名稱
__bases__:獲取某個類的所有父類,以元組的方式顯示
3-類的常用的魔術方法
.魔術方法就是不需要人為呼叫的方法,基本是在特定的時刻自動觸發
.魔術方法的統一特徵,方法名被前後各兩個下劃線包裹
.操作類
.__init__:建構函式
#init舉例
class a():
def __init__(self,name=0):
print('哈哈,我被呼叫了')
a=a()
>>哈哈,我被呼叫了
.__new__:物件例項化方法,一般不需要使用,此魔術方法需要重寫
.__call__:物件當函式使用的時候觸發
#__call__例項
class a():
def __init__(self,name=0):
print('哈哈,我被呼叫了')
python基礎課程
1.運算子 可以代表兩個數相加也可以代表兩個字串相連 a 12 22 print a b good job print b 代表兩個數相減也可以代表求乙個數的相反數 a 7print a 代表兩個數相乘也可以代表字串重複 a 5 898 print a b hello 3 print b 代表兩個數...
Python基礎課程筆記(一)
1 python www.python.org 2 print hello python print hello python 3 布林值 and,or,not 4 字串 都行。print 100 200 100 200 5 python注釋是 6 如果乙個字串包含很多需要轉義的字元,對每個字元都要...
python基礎課程系列(二)
3.2.修改 新增和刪除元素 你建立的大多數列表都將是動態的,這意味著列表建立後,將隨著程式的執行增刪元素。例如,你建立乙個遊戲,要求玩家射殺從天而降的外星人 為此,可在開始時將一些外 星人儲存在列表中,然後每當有外星人被射殺時,都將其從列表中刪除,而每次有新的外星人出現在螢幕上時,都將其新增到列表...