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

Python面向?qū)ο蟪绦蛟O(shè)計之靜態(tài)方法、類方法、屬性方法原理與用法分析

 更新時間:2020年03月23日 10:50:24   作者:隨風(fēng)行云  
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計之靜態(tài)方法、類方法、屬性方法,結(jié)合實例形式分析了Python靜態(tài)方法、類方法、屬性方法相關(guān)概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了Python面向?qū)ο蟪绦蛟O(shè)計之靜態(tài)方法、類方法、屬性方法原理與用法。分享給大家供大家參考,具體如下:

前言:認(rèn)為方法與函數(shù)同意義,由于這里使用method,所以稱為方法


靜態(tài)方法:

  • 使用@staticmethod來定義靜態(tài)方法。
  • 靜態(tài)方法:類和實例都可以調(diào)用的方法,實際上跟類沒什么關(guān)系了,對于這種不太相關(guān)的就使用靜態(tài)方法【用實例和類調(diào)用沒有區(qū)別】
class Dog(object):
  def __init__(self,name):
    self.name=name
  def talk(self):
    print("%s is talking"%self.name)
  @staticmethod
  def eat(self,food):##
    print("%s is eating %s"%(self.name,food))

  @staticmethod
  def bulk(): ##如果不涉及實例變量的內(nèi)容,可以不傳self
    print("wang wang!")

d=Dog("haha")
d.talk()
Dog.eat(d,"baozi")
d.eat(d,"mianbao")
d.bulk()
Dog.bulk()

注:由于不太相關(guān),所以不會自動傳self,如果操作涉及對象的內(nèi)容,需要手動傳入

image


類方法:

  • 使用@classmethod來定義類方法
  • 類方法只能訪問類變量,不能訪問實例變量
  • 如果涉及類變量比較多,而涉及實例變量比較少的話,使用類方法
class Dog(object):
  name="haha"
  def __init__(self,name):
    self.name=name

  @classmethod
  def eat(self):
    print(self)# <class '__main__.Dog'> 說明self是一個類
    print("%s is eating "%self.name)#所以只會調(diào)用類中的name

d=Dog("aotuman")
d.eat()##haha is eating
Dog.eat()##haha is eating
d2=Dog("huluwa")
d2.eat()

注:類方法中的self是一個類,因此才會只訪問類變量


屬性方法:

  • @property會把一個方法變成一個屬性
  • 為什么會有屬性方法

現(xiàn)有需求:我輸入因數(shù),你就會打印出我要的計算結(jié)果

用變量來實現(xiàn):

image

缺點(diǎn):無法約束賦值,假如我要限制不能輸入非數(shù)字【實際上,如果要做這樣的約束,就要建立一個函數(shù),這實際上與屬性方法相同,而如果在my_sum里面檢測的話,就比建立一個函數(shù)還要麻煩了】

用屬性方法來實現(xiàn):

image

  • 代碼:

解釋:

  • @property用于獲?。籃setter用于賦值傳參;@deleter用于刪除屬性,并不影響其他與當(dāng)前@property無關(guān)的函數(shù)
  • 要想他們?nèi)齻€關(guān)聯(lián)起來,函數(shù)名必須相同,且前綴是@property修飾的函數(shù)的名

image

class calc:
  @property
  def my_sum(self):
    print(self.one+self.two)
  @my_sum.setter
  def my_sum(self,l):
    if isinstance(l[0],int)&isinstance(l[1],int):
      self.one=l[0]
      self.two=l[1]
    else:
      print("no int")
  @my_sum.deleter
  def my_sum(self):
    print("del done")
    del self.one,self.two
c=calc()
c.my_sum=[1,2]
c.my_sum
del c.my_sum

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python3.x如何向mysql存儲圖片并顯示

    python3.x如何向mysql存儲圖片并顯示

    這篇文章主要介紹了python3.x如何向mysql存儲圖片并顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項

    Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項

    這篇文章主要介紹了Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項,需要的朋友可以參考下
    2016-02-02
  • Python處理excel根據(jù)全稱自動填寫簡稱

    Python處理excel根據(jù)全稱自動填寫簡稱

    這篇文章主要為大家詳細(xì)介紹了Python處理excel根據(jù)全稱自動填寫簡稱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • python中argparse模塊基礎(chǔ)及使用步驟

    python中argparse模塊基礎(chǔ)及使用步驟

    argsparse是python的命令行解析的標(biāo)準(zhǔn)模塊,內(nèi)置于python,不需要安裝。這個庫可以讓我們直接在命令行中就可以向程序中傳入?yún)?shù)并讓程序運(yùn)行,接下來通過本文給大家介紹python argparse模塊的相關(guān)知識,感興趣的朋友一起看看吧
    2022-06-06
  • 簡介Python設(shè)計模式中的代理模式與模板方法模式編程

    簡介Python設(shè)計模式中的代理模式與模板方法模式編程

    這篇文章主要介紹了Python設(shè)計模式中的代理模式與模板方法模式編程,文中舉了兩個簡單的代碼片段來說明,需要的朋友可以參考下
    2016-02-02
  • Python地圖繪制實操詳解

    Python地圖繪制實操詳解

    在本文里我們給大家介紹了用Python繪制地圖的知識點(diǎn)以及詳細(xì)步驟,需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03
  • Python中的函數(shù)作用域

    Python中的函數(shù)作用域

    在python中,一個函數(shù)就是一個作用域。這篇文章重點(diǎn)給大家介紹python中的函數(shù)作用域,感興趣的朋友一起看看吧
    2018-05-05
  • 利用Python實現(xiàn)面部識別的方法詳解

    利用Python實現(xiàn)面部識別的方法詳解

    人臉識別正在成為軟件開發(fā)中的一種趨勢。它有助于識別人臉并使應(yīng)用程序更加健壯。本文將使用python和face_recognition庫創(chuàng)建一個簡單的人臉識別,需要的可以參考一下
    2022-05-05
  • Django對接elasticsearch實現(xiàn)全文檢索的示例代碼

    Django對接elasticsearch實現(xiàn)全文檢索的示例代碼

    搜索是很常用的功能,如果是千萬級的數(shù)據(jù)應(yīng)該怎么檢索,本文主要介紹了Django對接elasticsearch實現(xiàn)全文檢索的示例代碼,感興趣的可以了解一下
    2021-08-08
  • Python實現(xiàn)畫箱線圖展示數(shù)據(jù)分布情況

    Python實現(xiàn)畫箱線圖展示數(shù)據(jù)分布情況

    這篇文章主要介紹了Python實現(xiàn)畫箱線圖展示數(shù)據(jù)分布情況,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論