<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    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 按照函數聲明中定義的的參數順序將參數值和參數名稱匹配起來。大部分時間,你會使用“通常”方式調用函數,但是如果你需要,總是可以提供附加的靈活性。

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

                    進一步閱讀

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频