python屬性定義
對(duì)于高速公路車路協(xié)同自動(dòng)駕駛測(cè)試來說可能會(huì)有很多計(jì)算或者處理的參數(shù),車輛的速度、位置、方向等用@property裝飾器把這些參數(shù)定義為對(duì)象的屬性,這樣在其他地方使用時(shí)就更加方便。
```python
class Vehicle:
def __init__(self, speed=):
self._speed = speed
@property
def speed(self):
return self._speed
@speed.setter
def speed(self, value):
if not isinstance(value, (int, float)):
raise TypeError('Speed must be a number.')
self._speed = value
```
在這個(gè)例子中,`@speed.setter`定義了個(gè)名為'speed'的setter方法,它會(huì)在嘗試修改'speed'屬性時(shí)被調(diào)用。這樣我司就對(duì)輸入進(jìn)行些驗(yàn)證,確保數(shù)據(jù)的正確性。
對(duì)于培訓(xùn)、體育用品、珠寶首飾制造等行業(yè)來說,Python的@property同樣適用。在培訓(xùn)行業(yè)中,個(gè)學(xué)員的成績(jī)可能經(jīng)過些復(fù)雜的計(jì)算才能得到用@property來包裝這個(gè)計(jì)算過程;在體育用品制造中,產(chǎn)品的重量、尺寸等信息可能是計(jì)算得出的,用@property來實(shí)現(xiàn);在珠寶首飾制造中,產(chǎn)品的價(jià)值可能根據(jù)材料的價(jià)格、人工費(fèi)用等因素計(jì)算得出,同樣使用@property。