真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python類(lèi)靜態(tài)函數(shù) Python靜態(tài)類(lèi)

類(lèi)函數(shù)、成員函數(shù)、靜態(tài)函數(shù)、抽象函數(shù)、方法偽裝屬性

本篇博客是滾雪球?qū)W Python 第二輪的最后一篇博客,我們將內(nèi)容繼續(xù)提升到面向?qū)ο蟛糠?,為你補(bǔ)充類(lèi)里面的一些裝飾器,學(xué)習(xí)之后,希望你的 Python 基礎(chǔ)知識(shí)可以更上一層樓。

創(chuàng)新互聯(lián)建站專(zhuān)注于網(wǎng)站建設(shè)|企業(yè)網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都柴油發(fā)電機(jī)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷(xiāo)售的產(chǎn)品,結(jié)合品牌形象的塑造,量身開(kāi)發(fā)品質(zhì)網(wǎng)站。

先直接看代碼,再對(duì)代碼內(nèi)容進(jìn)行分析與學(xué)習(xí)。

首先要掌握的是類(lèi)函數(shù)的定義格式,在普通函數(shù)的前面添加裝飾器 @classmethod ,該函數(shù)就會(huì)轉(zhuǎn)換為類(lèi)函數(shù),同時(shí)函數(shù)的第一個(gè)參數(shù)默認(rèn)是 cls ,該變量名可以任意,建議使用成 cls ,這個(gè)是程序員之間的約定。

在 Python 中,大部分 @classmethod 裝飾的函數(shù)末尾都是 return cls(XXX) , return XXX.__new__ () 也就是 @classmethod 的一個(gè)主要用途是作為構(gòu)造函數(shù)。

先掌握一個(gè)概念,靜態(tài)函數(shù)不屬于它所在的那個(gè)類(lèi),它是獨(dú)立于類(lèi)的一個(gè)單獨(dú)函數(shù),只是寄存在一個(gè)類(lèi)名下,先建立這個(gè)基本概念,后面學(xué)起來(lái)就簡(jiǎn)單很多了。

在同一個(gè)類(lèi)中,調(diào)用靜態(tài)方法,使用 類(lèi)名.函數(shù)名() 的格式。

先創(chuàng)建一個(gè)父類(lèi),其中包含兩個(gè)靜態(tài)函數(shù)與一個(gè)類(lèi)函數(shù)。

再編寫(xiě)一個(gè) S 類(lèi)繼承自 F 類(lèi):

測(cè)試之后,基本結(jié)論如下:

如果在子類(lèi)中覆蓋了父類(lèi)的靜態(tài)函數(shù),那調(diào)用時(shí)使用的是子類(lèi)自己的靜態(tài)函數(shù),

如果在子類(lèi)中沒(méi)有覆蓋父類(lèi)的靜態(tài)函數(shù),那調(diào)用時(shí)使用的是父類(lèi)的靜態(tài)函數(shù),

類(lèi)函數(shù)同樣遵循該規(guī)則。

如果希望在子類(lèi)中調(diào)用父類(lèi)的屬性或者函數(shù),請(qǐng)使用 父類(lèi)名. 的形式實(shí)現(xiàn)。

被 @abstractmethod 裝飾的函數(shù)為抽象函數(shù),含抽象函數(shù)的類(lèi)不能實(shí)例化,繼承了含抽象函數(shù)的子類(lèi)必須覆蓋所有抽象函數(shù)裝飾的方法,未被裝飾的可以不重寫(xiě)。

抽象類(lèi)是一個(gè)特殊的類(lèi),它的特殊之處在于只能被繼承,不能被實(shí)例化,實(shí)現(xiàn)代碼如下:

抽象基類(lèi)中學(xué)習(xí)還需要了解元類(lèi)相關(guān)知識(shí),在第三輪滾雪球?qū)W Python 中將為你展開(kāi)這部分內(nèi)容。

在 Python 面向?qū)ο蟮木幋a過(guò)程中, 對(duì)象.屬性 來(lái)獲取屬性的值,使用 對(duì)象.方法() 來(lái)調(diào)用方法,通過(guò)裝飾器 @property 可以將一個(gè)方法偽裝成屬性,從而使用 對(duì)象.方法 沒(méi)有括號(hào)的形式調(diào)用。代碼非常簡(jiǎn)單:

這種寫(xiě)法最直接的應(yīng)用,就是將部分屬性變成只讀屬性,例如,上述代碼,你無(wú)法通過(guò)下述代碼對(duì) name 進(jìn)行修改。

如果希望方法偽裝的屬性具備修改和刪除功能,需要參考下述代碼:

上述代碼在將 name 方法偽裝成屬性之后,可以通過(guò) @name.setter 和 @name.deleter 對(duì)同名的 name 方法進(jìn)行裝飾,從而實(shí)現(xiàn)了修改與刪除功能。

所以一般使用方法偽裝屬性的步驟是:

如果你覺(jué)得這個(gè)比較麻煩,還存在一種方法偽裝屬性的方式。使用 property 函數(shù),原型如下

通過(guò)上述函數(shù)將方法偽裝成屬性的代碼為:

滾雪球?qū)W Python 第二輪 15 篇博客在一次結(jié)束了,下一輪將在 4 月中旬再次開(kāi)啟,學(xué) Python 我們一直在路上,希望本系列的課程對(duì)你的 Python 學(xué)習(xí)有所助力。

python類(lèi)和函數(shù)的區(qū)別

類(lèi),class,用來(lái)描述具有相同的屬性和方法的對(duì)象的集合。它定義了該集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類(lèi)的實(shí)例。

函數(shù),是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫作用戶(hù)自定義函數(shù)。

python語(yǔ)言中類(lèi)和函數(shù)的區(qū)別

1、規(guī)則不同

類(lèi)是一種引用數(shù)據(jù)類(lèi)型,類(lèi)似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類(lèi)型;

函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實(shí)參)調(diào)用時(shí)函數(shù)名后的小括號(hào)中的實(shí)參必須和聲明函數(shù)時(shí)的函數(shù)括號(hào)中的形參個(gè)數(shù)相同。

2、主體不同

類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)現(xiàn)信息封裝的基礎(chǔ);

函數(shù)是指一段在一起的、可以做某一件事的子程序。

3、特點(diǎn)不同

類(lèi)是一種用戶(hù)定義的引用數(shù)據(jù)類(lèi)型,也稱(chēng)類(lèi)類(lèi)型,每個(gè)類(lèi)包含數(shù)據(jù)說(shuō)明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類(lèi)的實(shí)例稱(chēng)為對(duì)象;

函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類(lèi)中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運(yùn)算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。

python 里面有靜態(tài)函數(shù)嗎

python的類(lèi)里用@staticmethod的是靜態(tài)方法,@classmethod的是類(lèi)方法,如下

class?Person(object):

person_list?=?[]

def?__init__(self,?name,?age):

self.name?=?name

self.age?=?age

self.person_list.append(self)

@classmethod

def?one_year_later(cls):

for?p?in?cls.person_list:

p.age?+=?1

@staticmethod

def?born_one_boby(name):

return?Person(name,?0)

def?__repr__(self):

return?'Person?name:%s,?age:%s'?%?(self.name,?self.age)

if?__name__?==?'__main__':

petter?=??Person('Petter',23)

merry?=?Person('Merry',21)

print(petter)?#?Person?name:Petter,?age:23

print(merry)??#??Person?name:Merry,?age:21

Person.one_year_later()

print(petter)??#??Person?name:Petter,?age:24

print(merry)??#??Person?name:Merry,?age:22

baby?=?merry.born_one_boby('Tom')

print(Person.person_list)?#??[Person?name:Petter,?age:24,?Person?name:Merry,?age:22,?Person?name:Tom,?age:0]


文章題目:python類(lèi)靜態(tài)函數(shù) Python靜態(tài)類(lèi)
文章出自:http://weahome.cn/article/docciph.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部