欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3中property使用方法詳解

 更新時間:2019年04月23日 15:12:39   作者:Vince Li  
這篇文章主要為大家詳細介紹了python3中的property使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python3中的property使用方法,供大家參考,具體內(nèi)容如下

property屬性

定義

一個可以使實例方法用起來像實例屬性一樣的特殊關(guān)鍵字,可以對應(yīng)于某個方法,通過使用property屬性,能夠簡化調(diào)用者在獲取數(shù)據(jù)的流程(使代碼更加簡明)。

property屬性的定義和調(diào)用要注意以下幾點:

調(diào)用時,無需括號,加上就錯了;并且僅有一個self參數(shù)

實現(xiàn)property屬性的兩種方式

裝飾器

新式類中的屬性有三種訪問方式,并分別對應(yīng)了三個被

  • @property對應(yīng)讀取
  • @方法名.setter修改
  • @方法名.deleter刪除屬性
class Goods:
 def __init__(self):
 self.age = 18
 
  @property
  def price(self): # 讀取
    return self.age
    
  # 方法名.setter
  @price.setter # 設(shè)置,僅可接收除self外的一個參數(shù)
  def price(self, value):
    self.age = value
    
  # 方法名.deleter
  @price.deleter # 刪除
  def price(self):
    del self.age

# ############### 調(diào)用 ###############
obj = Goods()  # 實例化對象 
obj.age  # 直接獲取 age屬性值
obj.age= 123   #  修改age的值
del obj.age  #  刪除age屬性的值

類屬性

當使用類屬性的方式創(chuàng)建property屬性時,property()方法有四個參數(shù)

  • 第一個參數(shù)是方法名,調(diào)用 對象.屬性 時自動觸發(fā)執(zhí)行方法
  • 第二個參數(shù)是方法名,調(diào)用 對象.屬性 = XXX 時自動觸發(fā)執(zhí)行方法
  • 第三個參數(shù)是方法名,調(diào)用 del 對象.屬性 時自動觸發(fā)執(zhí)行方法
  • 第四個參數(shù)是字符串,調(diào)用 對象.屬性.doc ,此參數(shù)是該屬性的描述信息
class Goods(object):
  def __init__(self):  
    self.price = 100  # 原價
    self.discount = 0.8 # 折扣

  def get_price(self):
    # 實際價格 = 原價 * 折扣
    new_price = self.price * self.discount
    return new_price

  def set_price(self, value):
    self.price = value

  def del_price(self):
    del self.price
   # 獲取    設(shè)置     刪除    描述文檔
  PRICE = property(get_price, set_price, del_price, '價格屬性描述...')
 # 使用此方式設(shè)置
 
obj = Goods()
obj.PRICE     # 獲取商品價格
obj.PRICE = 200  # 修改商品原價
del obj.PRICE   # 刪除商品原價

使用property取代getter和setter方法

使用@property裝飾器改進私有屬性的getset方法

class Money(object):
  def __init__(self):
    self.__money = 0

  # 使用裝飾器對money進行裝飾,那么會自動添加一個叫money的屬性,當調(diào)用獲取money的值時,調(diào)用裝飾的方法
  @property
  def money(self):
    return self.__money

  # 使用裝飾器對money進行裝飾,當對money設(shè)置值時,調(diào)用裝飾的方法
  @money.setter
  def money(self, value):
    if isinstance(value, int):
      self.__money = value
    else:
      print("error:不是整型數(shù)字")

a = Money()
a.money = 100
print(a.money)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 學(xué)習(xí)Python需要哪些工具

    學(xué)習(xí)Python需要哪些工具

    這篇文章主要介紹了學(xué)習(xí)Python需要哪些工具,幫助大家開始學(xué)習(xí)python編程,感興趣的朋友可以了解下
    2020-09-09
  • python  fire庫的使用實例教程

    python  fire庫的使用實例教程

    fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何額外的工作,只需要從主模塊中調(diào)用fire.Fire(),它會自動將你的代碼轉(zhuǎn)化為CLI,F(xiàn)ire()的參數(shù)可以說任何的python對象,對python fire庫使用感興趣的朋友一起看看吧
    2022-12-12
  • python實戰(zhàn)之PyQt5實現(xiàn)漫畫臉

    python實戰(zhàn)之PyQt5實現(xiàn)漫畫臉

    本文詳細講解了python實戰(zhàn)之PyQt5實現(xiàn)漫畫臉的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • tornado 多進程模式解析

    tornado 多進程模式解析

    這篇文章主要介紹了tornado 多進程模式解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 詳解DBSCAN算法原理及其Python實現(xiàn)

    詳解DBSCAN算法原理及其Python實現(xiàn)

    DBSCAN,即Density-Based Spatial Clustering of Applications with Noise,基于密度的噪聲應(yīng)用空間聚類,本文將詳細介紹DBSCAN算法的原理及其Python實現(xiàn),需要的可以參考下
    2023-12-12
  • 基于Pandas讀取csv文件Error的總結(jié)

    基于Pandas讀取csv文件Error的總結(jié)

    今天小編就為大家分享一篇基于Pandas讀取csv文件Error的總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • django靜態(tài)文件加載的方法

    django靜態(tài)文件加載的方法

    本篇文章主要介紹了django靜態(tài)文件加載的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • python實現(xiàn)rest請求api示例

    python實現(xiàn)rest請求api示例

    這篇文章主要介紹了python實現(xiàn)rest請求api示例,需要的朋友可以參考下
    2014-04-04
  • 解決python明明pip安裝成功卻找不到包的問題

    解決python明明pip安裝成功卻找不到包的問題

    今天小編就為大家分享一篇解決python明明pip安裝成功卻找不到包的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python編程使用協(xié)程并發(fā)的優(yōu)缺點

    python編程使用協(xié)程并發(fā)的優(yōu)缺點

    協(xié)程是一種用戶態(tài)的輕量級線程,又稱微線程。這篇文章主要介紹了python編程使用協(xié)程并發(fā)的優(yōu)缺點,感興趣的朋友跟隨小編一起看看吧
    2018-09-09

最新評論