1. 程式人生 > 程式設計 >Python @property裝飾器原理解析

Python @property裝飾器原理解析

這篇文章主要介紹了Python @property裝飾器原理解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.通過@property裝飾器,可以直接通過方法名來訪問方法,不需要在方法名後新增一對“()”小括號。

class Person:
  def __init__(self,name):
    self.__name = name
  @property
  def say(self):
    return self.__name
xioabai = Person("xiaobai")
#直接通過方法名來訪問say方法
print("我的名字是:",xiaobai.say)
我的名字是: xiaobai

上面程式中,使用@property修飾了say()方法,這就使得該方法變成了name屬性的getter方法。

2.使用setter裝飾器,可以為say方法新增setter方法。

class Person:
  def __init__(self,name):
    self.__name = name
  @property
  def say(self):
    return self.__name
  @say.setter
  def say(self,value):
    self.__name = value
xiaobai = Person("xiaobai")
xiaobai.say = "xiaohei"
print("我的名字其實是:",xiaobai.say)
我的名字其實是: xiaohei

3.使用deleter裝飾器來刪除指定屬性,可以為say方法新增deleter方法

class Person:
  def __init__(self,value):
    self.__name = value
  @say.deleter
  def say(self):
    self.__name = "xxx"
xiaobai = Person("xiaobai")
del xiaobai.say
print("我的名字其實是:",xiaobai.say)
我的名字其實是: xxx

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。