<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            4.2. 使用可選參數和命名參數

            Python 允許函數參數有缺省值;如果調用函數時不使用參數,參數將獲得它的缺省值。此外,通過使用命名參數還可以以任意順序指定參數。SQL Server Transact/SQL 中的存儲過程也可以做到這些;如果你是腳本高手,你可以略過這部分。

            info 函數就是這樣一個例子,它有兩個可選參數。

            
            def info(object, spacing=10, collapse=1):

            spacingcollapse 是可選參數,因為它們已經定義了缺省值。object 是必備參數,因為它沒有指定缺省值。如果調用 info 時只指定一個參數,那么 spacing 缺省為 10collapse 缺省為 1。如果調用 info 時指定兩個參數,collapse 依然默認為 1

            假如你要指定 collapse 的值,但是又想要接受 spacing 的缺省值。在絕大部分語言中,你可能運氣就不太好了,因為你需要使用三個參數來調用函數,這勢必要重新指定 spacing 的值。但是在 Python 中,參數可以通過名稱以任意順序指定。

            例 4.4. info 的有效調用

            info(odbchelper)                    1
            info(odbchelper, 12)                2
            info(odbchelper, collapse=0)        3
            info(spacing=15, object=odbchelper) 4
            1 只使用一個參數,spacing 使用缺省值 10collapse 使用缺省值 1
            2 使用兩個參數,collapse 使用缺省值 1
            3 這里你顯式命名了 collapse 并指定了它的值。spacing 將依然使用它的缺省值 10
            4 甚至必備參數 (例如 object,沒有指定缺省值) 也可以采用命名參數的方式,而且命名參數可以以任意順序出現。

            這些看上去非常累,除非你意識到參數不過是一個字典。“通常” 不使用參數名稱的函數調用只是一個簡寫的形式,Python 按照函數聲明中定義的的參數順序將參數值和參數名稱匹配起來。大部分時間,你會使用“通常”方式調用函數,但是如果你需要,總是可以提供附加的靈活性。

            注意
            調用函數時唯一必須做的事情就是為每一個必備參數指定值 (以某種方式);以何種具體的方式和順序都取決于你。

            進一步閱讀

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线