python類的呼叫與方法的呼叫,函式修飾

2021-08-08 07:23:56 字數 1477 閱讀 2564

1.函式裝飾

1.什麼是裝飾

python 裝飾函式是指這樣一種神奇的函式。你在某個函式宣告之前新增一行@func()之類的語句,於是,你可以對某個函式的各種行為進行程式設計。你 可以在函式執行前後執行操作,改變函式接受的值,甚至可以完全忽略某個函式而執行其他的函式。我們把這樣的函式稱為裝飾函式

**情況如下

import types

def cai(num):

print(「白菜:7¥」)

if type(num)== types.functiontype:

return num()+7

return num+7

def rou(num):

print(「豬血:20¥」)

if type(num)==types.functiontype:

return num()+20

return num+20

@cai

@rou

def mala():

print(「麻辣香鍋:10¥」)

return 10

print(『總計:』,mala)

輸出結果為:

豬血:20¥

麻辣香鍋:10¥

白菜:7¥

總計: 37

@修飾符挺像是處理函式或類之前進行預處理

@dec1

@dec2

def test(arg):

pass

其效果類似於

dec1(dec2(test(arg)))

修飾函式還可以帶引數。

@dec1(arg1,arg2)

def test(testarg)

效果類似於

dec1(arg1,arg2)(test(arg))

這只是乙個例項,我也是初學者。

2.類和方法

1.類的宣告,

使用class定義

class demo:

…. 2.方法的宣告

使用def 定義方法

def method(self):

構造方法

使用init_()方法

class person:

__name = none

definit(self,name=none):#構造方法

self.__name = name

def show(self): #輸出方法

print(self.__name,」haha」)

p = person() #這類的呼叫,p為person的物件

這個#是python註解,這樣給值也可以,結果一樣

p.init(「zhangsan」) #方法的呼叫

p.show()

輸出結果為:

name = zhangsan haha

Python 類方法中呼叫父類的類方法

3.super 測試 推薦使用,安全 如果類的物件方法呼叫父類的物件方法,可以使用super 函式獲取父類的物件方法 如果在類方法中呼叫父類的類方法,則可以使用super 推薦,暫時未發現問題 或者cls.base 屬性 不推薦,我用的時候出現未知錯誤 獲取父類的類方法。為什麼使用屬性會出現問題?因...

Flutter 類與方法的呼叫

flutter中所有的state是由 祖先 父 子 傳遞,一般不支援反向傳遞。所有方法都寫在父元件中,正常呼叫 在子類中使用voidcallback定義乙個方法,在父元件中直接使用父元件中的方法 例 void main override widget build buildcontext conte...

python物件呼叫父類的方法

類定義 class people 定義基本屬性 name age 0 定義私有屬性,私有屬性在類外部無法直接進行訪問 weight 0 定義構造方法 def init self,n,a,w self.name n self.age a self.weight w def getweight self...