我們先來看一段代碼:
def max_pow(a, b):
? ? if a > b:
? ? ? ? ? pow_ad = a ** b
? ? ? ? ? return pow_ab
? ? ?pow_ba = b ** a
? ? ?return pow_ba
上面就是在python中的函數(shù)的定義的形式(先忽略作用和具體語法)嗤朴。上面除了if開頭的哪行以外配椭,每一行的語句開頭的空格都是一致的雹姊,我們稱這些空格為行縮進,在Python中擁有相同的縮進的行是唄認為在同一個層次的吱雏。
例如pow_ab = a ** b和return pow_ab,這兩個語句擁有相同的行縮進镰惦,他們是屬于同一個層次犬绒,都是被組織在if a > b:這個語句下的旺入,有共同層級的一些語句凯力。
可能你已經(jīng)注意到了def這個詞,我們稱之為定義函數(shù)的關鍵字拗秘。在這個詞后隔一個空格后祈惶,定義的是這個函數(shù)的名稱雕旨,而再之后的括號定義的是這個函數(shù)所接收的函數(shù)的參數(shù)形式。而真正利用接收的參數(shù)來進行函數(shù)功能性描述的函數(shù)的定義餐禁,則是在def這行之后突照,增加了行縮進的一系列的語句帮非。
對于max_pow這個函數(shù)讹蘑,我們可以通過max_pow(3, 2)的形式進行調(diào)用,而在這里的3和2則是被傳入給參數(shù)形式的實際參數(shù)陨舱。我們定義的max_pow這個函數(shù)將會用3代替a版仔,而用2代替b游盲,并執(zhí)行函數(shù)中定義的一系列的語句蛮粮。如果有需要繼續(xù)使用函數(shù)中的結果,我們則可以協(xié)商return并在return語句后緊跟定義的函數(shù)被調(diào)用后返回結果莺奔。
就如同上面的例子中,def這行以下的所有語句都是屬于max_pow的這個接收了被定義為a和b兩個函數(shù)的參數(shù)形式的函數(shù)的定義部分令哟。我們看到妨蛹,在定義部分我們用到了可以被傳入的a和b。
值得一提的是蛙卤,在上面的例子中我們在函數(shù)定義部分所用到的變量a、b表窘、pow_ab甜滨、pow_ba都只在函數(shù)的定義部分有效。如果我們其他地方使用這些變量昂验,他們都將是沒有定義或不同于函數(shù)定義中的值的。