#簡單測試@property
class
employee
: @property
defsalary
(self)
:return
30000
;emp1=employee(
)print
(emp1.salary)
#列印30000
print
(type
(emp1.salary)
)#列印
#emp1.salary() #報錯:typeerror:'int'object is not callable
#emp1.salary=1000 #@property修飾的屬性,如果沒有加setter方法,則為唯讀屬性。此處修改報錯:attributeerror:can't set attribute
@property主要用於幫助處理屬性的讀操作、寫操作。對於某乙個屬性可以直接通過:emp1.salary=30000
如上的操作讀操作、寫操作。但是這種做法不安全。比如我需要限制薪水必須為1-10000的數字。這時候就需要通過getter、setter方法來處理。
class
employee
:def
__init__
(self,name,salary)
: self.__name = name
self.__salary = salary
@property
defsalary
(self)
:return self.__salary
@salary.setter
defsalary
(self,salary):if
1000
50000
: self.__salary = salary
else
:print
("錄入錯誤!薪水在1000---50000之間"
)emp1 = employee(
"高淇"
,30000
)print
(emp1.salary)
emp1.salary =
2000
print
(emp1.salary)
python 裝飾器和 property裝飾器
裝飾器 1 裝飾器函式的本質 乙個閉包函式 2 裝飾器函式的作用 在不修改原函式及其呼叫方式的情況下對原函式功能進行擴充套件 3 語法糖 格式 裝飾器名稱 4 建立帶返回值的裝飾器 5 建立傳遞引數的裝飾器 6 裝飾器的固定格式 def f definner args,kwargs ret f ar...
內建裝飾器 property
使用 property 閱讀 4164 內建裝飾器 property的基本功能就是把類中的方法當作屬性來訪問 在繫結屬性時,如果我們直接把屬性暴露出去,雖然寫起來很簡單,但是,沒辦法檢查引數,導致可以把成績隨便改 s student s.score 9999這顯然不合邏輯。為了限制score的範圍,...
property裝飾器詳解
property裝飾器,看了好幾個教程都不太理解,知道發現了知乎的這篇好文python property的介紹與使用,終於懂了!下面結合github上的乙個例子,解釋一下這個裝飾器 class person object def init self,name,age 初始化 self.name na...