Python內建函式property 使用例項

2022-07-03 12:48:12 字數 1549 閱讀 4707

class shuxing():

def __init__(self, size = 10):

self.size = size

def getsize(self):

print('getsize')

return self.size

def setsize(self, value):

print('setsize')

self.size = value

def delsize(self):

print('delsize')

del self.size

x = property(getsize, setsize, delsize)

sx=shuxing(100)

print('1',sx.x) #獲取x,執行getsize方法

sx.x=1000 #設定x,執行setsize方法

print('2',sx.x) #獲取x,執行getsize方法

del sx.x # 刪除x,執行delsize方法

print('3',sx.size) # 獲取x,執行getsize方法,但是此時size已被刪除,所以會報錯

結果:

getsize

1 100traceback (most recent call last):

setsize

getsize

file

"d:/pycharmprojects/flask_demo/a.py

", line 21, in

2 1000delsize

print('3'

,sx.size)

attributeerror:

'shuxing

' object has no attribute '

size

'process finished with exit code 1

property()函式中的三個函式分別對應的是獲取屬性的方法、設定屬性的方法以及刪除屬性的方法,這樣一來,外部的物件就可以通過訪問x的方式,來達到獲取、設定或刪除屬性的目的。

當需要更改上例中的getsize、setsize或delsize函式的名稱時,如果這些方法是作為介面讓使用者呼叫的,那麼對使用者而言就要修改自己呼叫的方法名,很麻煩,使用了proprty()後,使用者就不需擔心這種問題了。

更多關於屬性的內建方法有:

hasattr():判斷物件中是否有指定名稱的屬性,第乙個引數是物件,第二個引數是字串(屬性名稱);

getattr():獲取物件中指定的屬性的值,如果屬性不存在,返回指定的提示字串,第乙個引數是物件,第二引數是字串(屬性名稱),第三個引數是字串(訪問的屬性不存在時的提示);

setattr():設定物件中指定的屬性的值,如果屬性不存在,就自動為物件新增該屬性並賦值,第乙個引數是物件,第二個引數字串(屬性名稱),第三個引數是需要設定的屬性對應的值;

delattr():刪除物件中指定的屬性,第乙個引數是物件,第二個引數需要刪除的指定屬性的名稱。

python重寫內建函式 python 內建函式

說明 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。語法 zip iterable1,iterable2,引數 iterable 乙個或多...

python內建函式簡稱 Python內建函式詳解

此文參考python文件,然後結合自己的理解,寫下來,一方面方便自己,讓自己好好學習,順便回憶回憶 另一方面,讓喜歡的盆友也參考一下。經查詢,3.6版本總共有68個內建函式,主要分類如下 數 算 7個 型別轉換 24個 序列操作 8個 物件操作 9個 反射操作 8個 變數操作 2個 互動操作 2個 ...

python內建函式使用 python內建函式使用

eval函式執行python表示式,有返回值 eval 1 2 3 4 5 exec函式執行的是python語句,沒有返回值 exec print 123 將字串型別的 編碼.物件能夠通過exec語句來執行或者eval 進行求值,c只是編譯,不執行 code for i in range 10 pr...