類似其它的語言, python 中的函式使用小括號( () )呼叫。函式在呼叫之前必須先定義。如果函式中沒有 return 語句, 就會自動返回 none 物件。
python 是通過引用呼叫的。 這意味著函式內對引數的改變會影響到原始物件。不過事實上只有可變物件會受此影響, 對不可變物件來說, 它的行為類似按值呼叫。
如何定義函式
deffunction_name([arguments]):
"optional documentation string
"function_suite
定義乙個函式的語法由 def 關鍵字及緊隨其後的函式名再加上該函式需要的幾個引數組成。函式引數(比較上面例子中的arguments)是可選的, 這也是為什麼把它們放到中括號中的原因。(在你的**裡千萬別寫上中括號!)這個語句由乙個冒號(:)結束(與if 和while語句的結束方式一樣), 之後是代表函式體的**組, 下面是乙個簡短的例子:
defaddme2me(x):''
return (x + x)
這個函式, 幹的是「在我的值上加我」的活。它接受乙個物件, 將它的值加到自身, 然後返回和。對於數值型別引數, 它的結果是顯而易見的, 不過我要在這裡指出, 加號運算子幾乎與所有資料型別工作。換句話說, 幾乎所有的標準資料型別都支援 + 運算子, 不管是數值相加還是序列合併。
如何呼叫函式
>>> addme2me(4.25)8.5>>>
>>> addme2me(10)
20>>>
>>> addme2me('
python')
'pythonpython
'>>>
>>> addme2me([-1, '
abc'
])[-1, '
abc', -1, '
abc']
python 語言中呼叫函式與在其它高階語言中一樣, 函式名加上函式運算子, 一對小括號。括號之間是所有可選的引數。即使乙個引數也沒有, 小括號也不能省略。注意一下, + 運算子在非數值型別中如何工作。
預設引數:
函式的引數可以有乙個預設值, 如果提供有預設值,在函式定義中, 引數以賦值語句的形式提供。事實上這僅僅是提供預設引數的語法,它表示函式呼叫時如果沒有提供這個引數, 它就取這個值做為預設值。
>>> def foo(debug=true):...
'determine if in debug mode with default argument
'...
ifdebug:
...
'in debug mode
'...
'done
'...
>>>foo()
indebug mode
done
>>>foo(false)
done
在上面的例子裡, debug 引數有乙個預設值 true. 如果我們沒有傳遞引數給函式foo(),debug 自動拿到乙個值, true. 在第二次呼叫 foo()時, 我們故意傳遞乙個引數 false 給foo(), 這樣, 預設引數就沒有被使用。
python類中 property的講解與使用
property可以把乙個例項方法變成其同名屬性,以支援.號訪問,它亦可標記設定限制,加以規範,如下 class animal object def init self,name,age self.name name self.age age self.color black property de...
python類定義的講解
一 類定義 複製 如下 class 類名 語句 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性。如果直接使用類名修改其屬性,那麼將直接影響到已經例項化的物件 類的私有屬性 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問。在類內...
Python 類定義的講解
python learnining day1一 類定義 複製 如下 class 類名 語句 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性。如果直接使用類名修改其屬性,那麼將直接影響到已經例項化的物件。類的私有屬性 private attrs 兩個下劃線開頭,宣告該屬性為...