<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Python 在定義函數時也可以使用可變參數,即允許定義參數個數可變的函數。這樣當調用該函數時,可以向其傳入任意多個參數。 可變參數,又稱不定長參數,即傳入函數中的實際參數可以是任意多個。Python 定義可變參數,主要有以下 2 種形式。 ## 1) 可變參數:形參前添加一個 '\*' 此種形式的語法格式如下所示: ``` *args ``` args 表示創建一個名為 args 的空元組,該元組可接受任意多個外界傳入的非關鍵字實參。 下面程序演示了如何定義一個參數可變的函數: ``` # 定義了支持參數收集的函數 def dis_str(home, *str) : print(home) # 輸出str元組中的元素 print("str=",str) for s in str : print(s) #可傳入任何多個參數 dis_str("http://x.linyiwang.cn","http://x.linyiwang.cn/python/","http://x.linyiwang.cn/shell/") ``` 程序執行結果為: ``` http://x.linyiwang.cn str= ('http://x.linyiwang.cn/python/', 'http://x.linyiwang.cn/shell/') http://x.linyiwang.cn/python/ http://x.linyiwang.cn/shell/ ``` 上面程序中,dis_str() 函數的最后一個參數就是 str 元組,這樣在調用該函數時,除了前面位置參數接收對應位置的實參外,其它非關鍵字參數都會由 str 元組接收。 當然,可變參數并不一定必須為最后一個函數參數,例如修改 dis_str() 函數為: ``` # 定義了支持參數收集的函數 def dis_str(*str,home) : print(home) # 輸出str元組中的元素 print("str=",str) for s in str : print(s) dis_str("http://x.linyiwang.cn","http://x.linyiwang.cn/python/",home="http://x.linyiwang.cn/shell/") ``` 可以看到,str 可變參數作為 dis_str() 函數的第一個參數。但需要注意的是,在調用該函數時,必須以關鍵字參數的形式給普通參數傳值,否則 Python 解釋器會把所有參數都優先傳給可變參數,如果普通參數沒有默認值,就會報錯。 也就是說,下面代碼調用上面的 dia_str() 函數,是不對的: ``` dis_str("http://x.linyiwang.cn","http://x.linyiwang.cn/python/","http://x.linyiwang.cn/shell/") ``` Python 解釋器會提供如下報錯信息: ``` TypeError: dis_str() missing 1 required keyword-only argument: 'home' ``` 翻譯過來就是我們沒有給 home 參數傳值。當然,如果 home 參數有默認參數,則此調用方式是可行的。 ## 2) 可變參數:形參前添加兩個'\*' 這種形式的語法格式如下: ``` **kwargs ``` **kwargs 表示創建一個名為 kwargs 的空字典,該字典可以接收任意多個以關鍵字參數賦值的實際參數。 例如如下代碼: ``` # 定義了支持參數收集的函數 def dis_str(home,*str,**course) : print(home) print(str) print(course) #調用函數 dis_str("我愛學Python",\ "http://x.linyiwang.cn",\ "http://x.linyiwang.cn/python/",\ shell教程="http://x.linyiwang.cn/shell/",\ go教程="http://x.linyiwang.cn/golang/",\ java教程="http://x.linyiwang.cn/java/") ``` 程序輸出結果為: ``` 我愛學Python ('http://x.linyiwang.cn', 'http://x.linyiwang.cn/python/') {'shell教程': 'http://x.linyiwang.cn/shell/', 'go教程': 'http://x.linyiwang.cn/golang/', 'java教程': 'http://x.linyiwang.cn/java/'} ``` 上面程序在調用 dis\_str() 函數時,第 1 個參數傳遞給 home 參數,第 2、3 個非關鍵字參數傳遞給 str 元組,最后 2 個關鍵字參數將由 course 字典接收。 注意,\*args 可變參數的值默認是空元組,\*\*kwargs 可變參數的值默認是空字典。因此,在調用具有可變參數的函數時,不一定非要給它們傳值。以調用 dis\_str(home, \*str, \*\*course) 為例,下面的調用方式也是正確的: ``` dis_str(home="http://x.linyiwang.cn/shell/") ``` 程序執行結果為: ``` http://x.linyiwang.cn/shell/ () {} ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看