日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python的property屬性
Python的property屬性是一種裝飾器,用于將方法轉(zhuǎn)換為只讀屬性。它可以用于類和實(shí)例方法。使用@property裝飾器可以將方法轉(zhuǎn)換為相同名稱的只讀屬性,而不需要在代碼中添加特殊代碼來實(shí)現(xiàn)這一點(diǎn)。這使得代碼更加簡潔易讀。

Python中的property標(biāo)簽屬性是一種特殊的裝飾器,它可以將一個(gè)方法轉(zhuǎn)換為屬性調(diào)用,這樣可以在不改變類的接口的情況下,增加或修改類的方法,property標(biāo)簽屬性的主要作用是實(shí)現(xiàn)數(shù)據(jù)的封裝和隱藏,提高代碼的可讀性和可維護(hù)性。

property標(biāo)簽屬性的基本用法

1、定義一個(gè)類,并在其中定義一個(gè)方法作為屬性的getter方法。

class Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age
    @property
    def name(self):
        return self._name

2、在類外部訪問屬性時(shí),可以直接通過屬性名進(jìn)行訪問。

p = Person("張三", 18)
print(p.name)   輸出:張三

3、也可以通過getter方法獲取屬性值。

print(p.name)   輸出:張三

4、如果需要設(shè)置屬性值,可以使用setter方法。

p.name = "李四"
print(p.name)   輸出:李四

使用@property裝飾器將方法轉(zhuǎn)換為屬性調(diào)用

1、在類中定義一個(gè)方法,并在方法前加上@property裝飾器。

class Circle:
    def __init__(self, radius):
        self._radius = radius
    @property
    def radius(self):
        return self._radius * 2

2、在類外部訪問屬性時(shí),可以直接通過屬性名進(jìn)行訪問,此時(shí),該方法已經(jīng)被轉(zhuǎn)換為屬性調(diào)用。

c = Circle(5)
print(c.radius)   輸出:20

3、也可以通過getter方法獲取屬性值,此時(shí),該方法已經(jīng)被轉(zhuǎn)換為屬性調(diào)用。

print(c.radius)   輸出:20

4、如果需要設(shè)置屬性值,可以使用setter方法,此時(shí),該方法已經(jīng)被轉(zhuǎn)換為屬性調(diào)用。

c.radius = 10
print(c.radius)   輸出:20 (因?yàn)榘霃揭呀?jīng)乘以2)

使用@property裝飾器的多個(gè)屬性共享同一個(gè)getter和setter方法

1、在類中定義一個(gè)方法,并在方法前加上@property裝飾器,在該方法中返回另一個(gè)方法的結(jié)果,這樣,多個(gè)屬性就可以共享同一個(gè)getter和setter方法。

class Circle:
    def __init__(self, radius):
        self._radius = radius
        self._area = None
        self._circumference = None
        self.update()   初始化面積和周長為None,然后調(diào)用update方法更新它們
    def update(self):
        import math as mtm
        self._area = mtm.pi * self._radius * self._radius
        self._circumference = mtm.pi * self._radius * 2

2、在類外部訪問屬性時(shí),可以直接通過屬性名進(jìn)行訪問,此時(shí),該屬性會(huì)調(diào)用對應(yīng)的getter方法,如果需要設(shè)置屬性值,可以使用setter方法,此時(shí),該屬性會(huì)調(diào)用對應(yīng)的setter方法,注意,當(dāng)設(shè)置面積或周長時(shí),會(huì)自動(dòng)更新半徑。

c = Circle(5)   c的面積為78.53981633974483,周長為31.41592653589793 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別)
print(c.area)   輸出:78.53981633974483 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別)
print(c.circumference)   輸出:31.41592653589793 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別)
c.area = 100   c的面積被設(shè)置為250 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別),半徑也被自動(dòng)更新為25 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別)
print(c.area)   輸出:250 (根據(jù)Python版本和環(huán)境可能會(huì)有細(xì)微差別)

新聞名稱:python的property屬性
文章來源:http://www.dlmjj.cn/article/djijjig.html