濮阳杆衣贸易有限公司

主頁 > 知識庫 > Python中的類對象示例詳解

Python中的類對象示例詳解

熱門標(biāo)簽:西藏智能外呼系統(tǒng)五星服務(wù) 千陽自動外呼系統(tǒng) 原裝電話機(jī)器人 工廠智能電話機(jī)器人 江蘇客服外呼系統(tǒng)廠家 平頂山外呼系統(tǒng)免費(fèi) 在哪里辦理400電話號碼 400電話申請服務(wù)商選什么 清遠(yuǎn)360地圖標(biāo)注方法

抽象特點(diǎn)

Python 一切皆對象,基于此概念,對 類 class 有以下特點(diǎn):

類與實(shí)例的屬性

類對象創(chuàng)建可選擇定義類屬性,創(chuàng)建實(shí)例對象時,實(shí)例屬性自動執(zhí)行類的__init__方法初始化

實(shí)例對象自動繼承相應(yīng)的類屬性(如果有),但實(shí)例屬性優(yōu)先級更高

實(shí)例方法,類方法,靜態(tài)方法的參數(shù)

實(shí)例方法是一般函數(shù)但實(shí)例方法需要傳入self參數(shù)(與一般函數(shù)的區(qū)別)

類方法和靜態(tài)方法是通過裝飾器實(shí)現(xiàn)的函數(shù),類方法需要傳入cls參數(shù),靜態(tài)方法無需傳入self參數(shù)或者是cls參數(shù)(但也能傳入?yún)?shù))

其中self參數(shù)必須指向?qū)嵗龑ο?,cls參數(shù)指向定義的類對象(self與cls是約定俗成的,原則上可以用其它名字)

方法與函數(shù)

其中方法是在對象語境下的函數(shù),實(shí)例調(diào)用實(shí)例方法即調(diào)用方法,類調(diào)用實(shí)例方法即調(diào)用函數(shù)

具體細(xì)節(jié)

類舉例

class Toy(object): # 此處此類可理解為設(shè)計一個Toy的藍(lán)圖
  # 賦值定義類屬性,記錄所有玩具數(shù)量
  count = 0

  def __init__(self, name): # 用于實(shí)例初始化
    self.name = name
    # 類屬性 +1
    Toy.count += 1

  @classmethod # 此裝飾器表示是類方法,類方法無需創(chuàng)建實(shí)例對象即可調(diào)用,最為靈活
  def show_toy_count(cls):
    print('玩具對象的數(shù)量 %d' % cls.count, cls)

  @staticmethod # 此裝飾器表示是靜態(tài)方法,靜態(tài)方法本質(zhì)上是封裝在類對象內(nèi)的的函數(shù),常用于測試
  def hi():
    print('Hello!')

  # 實(shí)例方法
  def beybey(self):
    print('Sad!', self)


# 創(chuàng)建實(shí)例對象
toy1 = Toy('樂高')
toy1.hand = 2
toy2 = Toy('泰迪熊')
toy3 = Toy('哥斯拉')
print(toy1.name, toy2.name, toy3.name)

# 點(diǎn)語法調(diào)用類方法與靜態(tài)方法,如:類名.方法
Toy.show_toy_count()
Toy.hi()
# 實(shí)例對象調(diào)用類方法時,與類對象調(diào)用類方法無異,但實(shí)際上調(diào)用仍通過實(shí)例對象繼承的類對象
toy1.show_toy_count()
print(toy1.hand)
# 實(shí)例對象調(diào)用靜態(tài)方法時,與類對象調(diào)用靜態(tài)方法無異,但實(shí)際上調(diào)用仍通過實(shí)例對象繼承的類對象
toy2.hi()
# 實(shí)例對象調(diào)用實(shí)例方法,Python的解釋器內(nèi)部,當(dāng)我們調(diào)用toy3.beybey()時,實(shí)際上Python解釋成Toy.beybey(toy3)
toy3.beybey()
# Toy.beybey() # 錯誤語法,self必須指向?qū)嵗龑ο?,此處?shí)例方法指向類對象而不是實(shí)例對象
Toy.beybey(toy3)
# 類與其實(shí)例的類型和內(nèi)存地址
print(type(Toy), id(Toy), type(toy3), id(toy3))

輸出結(jié)果

樂高 泰迪熊 哥斯拉
玩具對象的數(shù)量 3 class '__main__.Toy'>
Hello!
玩具對象的數(shù)量 3 class '__main__.Toy'>
2
Hello!
Sad! __main__.Toy object at 0x000001FD9F794D60>
Sad! __main__.Toy object at 0x000001FD9F794D60>
class 'type'> 2188806599664 class '__main__.Toy'> 2188813880672

類方法與靜態(tài)方法舉例

class Cat: # 或者class Cat()不寫父對象形式定義類對象,會默認(rèn)繼承祖先object對象
  name = '小敏'

  @classmethod
  def www(cls):
    print('%s 干嘛!' % cls.name)
    # cls.call() # 類方法可以調(diào)用靜態(tài)方法

  @staticmethod
  def call():
    print('喵喵~')
    Cat.name = '小敏臭弟弟'
    print(Cat.name)
    # Cat.www() # 靜態(tài)方法可以調(diào)用類方法


Cat.www()
Cat.call()
# 沒有定義實(shí)例方法可以創(chuàng)建實(shí)例對象繼承并使用其中方法
cat1 = Cat()
cat1.www()
cat1.call()

輸出結(jié)果

小敏 干嘛!
喵喵~
小敏臭弟弟
小敏臭弟弟 干嘛!
喵喵~
小敏臭弟弟

祖先對象中包含的基本方法

print(dir(object))

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

總結(jié)

類 class 是 Python 中最核心的對象,定義類通常要寫好類屬性,實(shí)例方法,類方法,靜態(tài)方法等幾部份。把類和繼承的類的實(shí)例比作函數(shù)中的主函數(shù)和子函數(shù),那么類屬性可認(rèn)為是全局變量,實(shí)例屬性可認(rèn)為是局部變量;把類看成葫蘆,實(shí)例方法則是方便我們照畫瓢的同時,提供因地制宜的可能;類方式能夠使我們更高效的使用類的功能而靜態(tài)方法往往能幫助我們了解類的功能。

類 的各方法間并不是彼此毫不相干,而是有著很強(qiáng)的共性,具體使用時應(yīng)靈活運(yùn)用,不應(yīng)局限在抽象的定義之中。

到此這篇關(guān)于Python中類對象的文章就介紹到這了,更多相關(guān)Python類對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 可迭代對象 iterable的具體使用
  • Python中可變和不可變對象的深入講解
  • python獲取對象信息的實(shí)例詳解
  • python面向?qū)ο笾惖睦^承詳解
  • 簡單談?wù)凱ython面向?qū)ο蟮南嚓P(guān)知識
  • Python面向?qū)ο笾蓡T相關(guān)知識總結(jié)
  • Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識總結(jié)
  • python面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng)
  • python面向?qū)ο蠡A(chǔ)之常用魔術(shù)方法
  • python學(xué)習(xí)之可迭代對象、迭代器、生成器
  • Python 的可變和不可變對象詳情

標(biāo)簽:安慶 股票 天水 白城 隨州 西安 日照 錦州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中的類對象示例詳解》,本文關(guān)鍵詞  Python,中的,類,對象,示例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中的類對象示例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python中的類對象示例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    墨竹工卡县| 安丘市| 康平县| 德保县| 罗甸县| 图片| 商丘市| 大石桥市| 西乌珠穆沁旗| 太白县| 靖安县| 礼泉县| 襄汾县| 安义县| 鸡泽县| 临潭县| 遂昌县| 宜黄县| 翁牛特旗| 镇康县| 堆龙德庆县| 台南县| 新田县| 宿州市| 大足县| 澎湖县| 财经| 苏尼特右旗| 丁青县| 蒲城县| 长汀县| 郁南县| 鸡西市| 濮阳县| 井陉县| 宜阳县| 鄱阳县| 翼城县| 家居| 苗栗市| 乡宁县|