bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

python靜態函數 Python 靜態函數

Python中靜態方法和類方法的區別是什么'>lt;譯文>Python中靜態方法和類方法的區別是什么

要在類中使用靜態方法,需在類成員函數前面加上@staticmethod標記符,以表示下面的成員函數是靜態函數。使用靜態方法的好處是,不需要定義實例即可使用這個方法。另外,多個實例共享此靜態方法。

公司主營業務:網站建設、成都做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯推出錫林郭勒盟免費做網站回饋大家。

普通的類方法需要對象實例化之后才能調用 。

如何在Python中定義靜態變量

Python使用函數默認值實現函數靜態變量的方法,具體方法如下:

一、Python函數默認值

Python函數默認值的使用可以在函數調用時寫代碼提供方便,很多時候我們只要使用默認值就可以了。 所以函數默認值在python中用到的很多,尤其是在類中間,類的初始化函數中一幫都會用到默認值。 使用類時能夠方便的創建類,而不需要傳遞一堆參數。

只要在函數參數名后面加上 ”=defalut_value”,函數默認值就定義好了。有一個地方需要注意的是,有默認值的參數必須在函數參數列表的最后,不允許將沒有默認值的參數放在有默認值的參數后,因為如果你那樣定義的話,解釋器將不知道如何去傳遞參數。

先來看一段示例代碼:

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):

while True:

ok = raw_input(prompt)

if ok in ('y', 'ye', 'yes'): return True

if ok in ('n', 'no', 'nop', 'nope'): return False

retries = retries - 1

if retries 0: raise IOError, 'refusenik user'

print complaint

你調用上面的函數時,可以修改重試次數和輸出的提示語言,如果你比較懶得話,那么什么都不用改。

二、python使用函數默認值來實現函數靜態變量的功能

Python中是不支持靜態變量的,但是我們可以通過函數的默認值來實現靜態變量的功能。

當函數的默認值是內容是可變的類時,類的內容可變,而類的名字沒變。(相當于開辟的內存區域沒有變,而其中內容可以變化)。

這是因為python中函數的默認值只會被執行一次,(和靜態變量一樣,靜態變量初始化也是被執行一次。)這就是他們的共同點。

再來看下面的程序片段:

def f(a, L=[]):

L.append(a)

return L

print f(1)

print f(2)

print f(3)

print f(4,['x'])

print f(5)

其輸出結果是:

[1]

[1, 2]

[1, 2, 3]

['x', 4]

[1, 2, 3, 5]

前面的好理解,為什么最后 “print f(5)”的輸出是 “[1, 2, 3, 5]”呢?

這是因為 “print f(4,['x'])”時,默認變量并沒有被改變,因為默認變量的初始化只是被執行了一次(第一次使用默認值調用),初始化執行開辟的內存區(我們可以稱之為默認變量)沒有被改變,所以最后的輸出結果是“[1, 2, 3, 5]”。

python 類方法和靜態方法的區別

面相對象程序設計中,類方法和靜態方法是經常用到的兩個術語。

邏輯上講:類方法是只能由類名調用;靜態方法可以由類名或對象名進行調用。

在C++中,靜態方法與類方法邏輯上是等價的,只有一個概念,不會混淆。

而在python中,方法分為三類實例方法、類方法、靜態方法。代碼如下:

 class Test(object):

def InstanceFun(self):

print("InstanceFun");

print(self);

@classmethod

def ClassFun(cls):

print("ClassFun");

print(cls);

@staticmethod

def StaticFun():

print("StaticFun");

t = Test(); 

t.InstanceFun();# 輸出InstanceFun,打印對象內存地址“__main__.Test object at 0x0293DCF0”

Test.ClassFun(); # 輸出ClassFun,打印類位置 class '__main__.Test'

Test.StaticFun(); # 輸出StaticFun

t.StaticFun(); # 輸出StaticFun

t.ClassFun(); # 輸出ClassFun,打印類位置 class '__main__.Test'

Test.InstanceFun(); # 錯誤,TypeError: unbound method instanceFun() must be called with Test instance as first argument

Test.InstanceFun(t); # 輸出InstanceFun,打印對象內存地址“__main__.Test object at 0x0293DCF0”

t.ClassFun(Test); # 錯誤 classFun() takes exactly 1 argument (2 given)

可以看到,在python中,兩種方法的主要區別在于參數。實例方法隱含的參數為類實例self,而類方法隱含的參數為類本身cls。

靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法。

所以邏輯上類方法應當只被類調用,實例方法實例調用,靜態方法兩者都能調用。主要區別在于參數傳遞上的區別,實例方法悄悄傳遞的是self引用作為參數,而類方法悄悄傳遞的是cls引用作為參數。

python實現了一定的靈活性使得類方法和靜態方法,都能夠被實例和類二者調用

python 為什么要使用靜態方法

Python使用靜態方法類似函數工具使用,一般盡量少用靜態方法。

Python的靜態方法和類成員方法都可以被類或實例訪問,兩者概念不容易理清,但還是有區別的:

1)靜態方法無需傳入self參數,類成員方法需傳入代表本類的cls參數;

2)從第1條,靜態方法是無法訪問實例變量的,而類成員方法也同樣無法訪問實例變量,但可以訪問類變量;

3)靜態方法有點像函數工具庫的作用,而類成員方法則更接近類似Java面向對象概念中的靜態方法。

3種python3的canny邊緣檢測之靜態,可調節和自適應

先看高級版的python3的canny的自適應邊緣檢測:

內容:

1 canny的邊緣檢測的介紹。

2 三種方法的canny的邊緣檢測,由淺入深地介紹:固定值的靜態,可自調節的,自適應的。

說明:

1 環境:python3.8、opencv4.5.3和matplotlib3.4.3。

2 圖片:來自品閱網正版免費圖庫。

3 實現自適應閾值的canny邊緣檢測的參考代碼和文章:

上述的代碼,本機均有報錯,故對代碼進行修改,注釋和運行。

初級canny:

1 介紹:opencv中給出了canny邊緣檢測的接口,直接調用:

即可得到邊緣檢測的結果ret,其中,t1,t2是需要人為設置的閾值。

2 python的opencv的一行代碼即可實現邊緣檢測。

3 Canny函數及使用:

4 Canny邊緣檢測流程:

去噪 -- 梯度 -- 非極大值抑制 -- 滯后閾值

5 代碼:

6 操作和過程:

7 原圖:

8 疑問:

ret = cv2.canny(img,t1,t2),其中,t1,t2是需要人為設置的閾值,一般人怎么知道具體數值是多少,才是最佳的呀?所以,這是它的缺點。

中級canny:

1 中級canny,就是可調節的閾值,找到最佳的canny邊緣檢測效果。

2 采用cv2.createTrackbar來調節閾值。

3 代碼:

4 操作和效果:

5 原圖:

高級canny:

1 自適應canny的算法:

ret = cv2.canny(img,t1,t2)

即算法在運行過程中能夠自適應地找到較佳的分割閾值t1,t2。

2 文件結構:

3 main.py代碼:

4 dog.py代碼:

5 bilateralfilt.py代碼:

6 原圖:

7 效果圖:本文第一個gif圖,此處省略。

小結:

1 本文由淺入深,總結的很好,適合收藏。

2 對于理解python的opencv的canny的邊緣檢測,很有幫助。

3 本文高級版canny自適應的算法參考2篇文章,雖然我進行代碼的刪除,注釋,修改,優化等操作,故我不標注原創,對原作者表達敬意。

4 自己總結和整理,分享出來,希望對大家有幫助。

Python中靜態方法和類方法的區別

一、先是在語法上面的區別:

1、靜態方法不需要傳入self參數,類成員方法需要傳入代表本類的cls參數;

2、靜態方法是無妨訪問實例變量和類變量的,類成員方法無法訪問實例變量但是可以訪問類變量

二、使用的區別:

由于靜態方法無法訪問類屬性,實例屬性,相當于一個相對獨立的方法,跟類其實并沒有什么關系。這樣說來,靜態方法就是在類的作用域里的函數而已。

網站題目:python靜態函數 Python 靜態函數
轉載注明:http://vcdvsql.cn/article10/doodddo.html

成都網站建設公司_創新互聯,為您提供網頁設計公司微信小程序云服務器網站排名定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設