import math
class circle:
def __init__(self, radius):
self.radius = radius
@property
def area(self):
return math.pi * self.radius ** 2
@property
def diameter(self):
return self.radius ** 2
@property
def perimeter(self):
return 2 * math.pi * self.radius
c = circle(20)
print(c.radius)
print(c.area)
print(c.diameter)
print(c.perimeter)
在python中,我們唱會看到@property 裝飾器
這上面這個**中的例子裡面,為唯讀特性,用來返回資料時,函式作為屬性返回。
常規模式下,我們呼叫需要這樣呼叫
c = circle(20)
print(c.radius)
print(c.area())
print(c.diameter())
print(c.perimeter())
@property 的用法很多,我們還可以用來檢測,setattr 值是否符合我們的要求
class demo:
def __init__(self,name):
self.name=name
@property
def name(self):
return self._name
@demo.setter
def name(self,value):
if not isinstance(value,str):
raise typeerror('type worng')
self._name=value
我們可以在子類中對這個方法進行擴充套件,過載
class subdemo(demo):
#我們根據自己的情況可以選擇在子類中對應的方法進行擴充套件
@demo.name.setter
def name(self,value):
super(subdemo,subdemo).name.__set__(self,value)
@demo.name.getter
def name(self):
return super().name
諸如此類有很多中用法,大家可以去挖掘! python中的 property使用
如下 class animal object def init self,name,age self.name name self.age age a animal zhuzhu 9 a.name out 3 zhuzhu a.age out 4 9 a.age 20 a.age out 5 20在...
python中 property裝飾器
python中有乙個被稱為屬性函式 property 的小概念,它可以做一些有用的事情。在這篇文章中,我們將看到如何能做以下幾點 property 考察 student 類 class student object def init self,name,score self.name name se...
python 中 property的使用
從14年下半年開始接觸到python,自學了一段時間,後又跟別人學習了下,把基礎知識基本上學過了。忽然感覺python不可能這麼簡單吧,就這麼點東西?後來看了下書,發現還有很多的高階部分。連續看了兩天,把裝飾符 看了下,記錄下。裝飾符的作用就是類裡的方法變成屬性使用,比直接呼叫方法要直接簡單 直接上...