Python 參數傳遞

本文將從以下幾個方面對Python 參數傳遞做詳細闡述:

一、參數傳遞的基礎概念

Python 學習中,參數傳遞是一個必須掌握的重要概念。簡單來說,參數傳遞是指在函數調用時將實際參數傳遞給形式參數的過程。

# 定義一個簡單的函數,並傳遞參數
def greeting(name):
    print('Hello, ' + name + '!')

greeting('Tom')

在上面的例子中,我們定義了一個函數greeting,它接受一個參數name,並列印出”Hello, name!” 的結果。在函數調用時,我們傳遞了參數Tom,實際參數通過形式參數name傳遞到函數中。

二、Python 中參數傳遞的方式

Python 中存在兩種參數傳遞的方式:傳值和傳引用。在 Python 中,對象分為可變對象和不可變對象,可變對象包含列表、字典等,不可變對象包含數字、字元串等。

1、傳值

在 Python 中,傳值就是將實際參數的值傳遞給形式參數的過程。對於不可變的數據類型,如數字、字元串、元組等,參數傳遞的方式是傳值。這也就是說,在函數內對形參所做的修改,不會影響到函數外部的實參。

# 傳遞字元串作為參數的示例 
def change_string(str):
    str = 'Changed String'
    print('函數內值: ', str)

string = 'Hello, world!'
change_string(string)
print('函數外值: ', string)

在上面的代碼中,我們定義一個函數change_string,它接受一個字元串類型的參數str,並在函數內部對str變數賦值。當我們調用函數change_string函數時,函數內部的str被賦值為’Changed String’。但是,函數外部的string仍然保留著原先的值’Hello, world!’,這說明傳遞的是參數的值,形參的修改並不會影響到實參。

2、傳引用

在 Python 中,傳引用就是將實際參數的引用傳遞給形式參數的過程。對於可變的數據類型,如列表、字典等,參數傳遞的方式是傳引用。這就意味著如果在函數內修改了形參,實參也會受到影響。

# 傳遞列表作為參數的示例
def change_list(mylist):
    mylist.append([1,2,3,4])
    print('函數內值: ', mylist)

list = [10,20,30]
change_list(list)
print('函數外值: ', list)

在上面的代碼中,我們定義一個函數change_list,它接受一個列表類型的參數mylist,並在函數內部對mylist執行了append操作。當我們調用函數change_list函數時,函數內部的mylist向原始列表中添加了一個包含4個數字的新列表。但是,函數外部的list也被修改了,它現在包含了4個元素:[10,20,30,[1,2,3,4]],這說明傳遞的是變數的引用,形參的修改會影響實參。

三、默認參數

在 Python 中,函數可以接受默認值作為參數,這些默認值可以是必需的或可選的。定義默認值後,函數參數可以在調用時不用傳遞任何值。

# 帶有默認值的函數示例
def print_info(name, age=35):
    print('Name: ', name)
    print('Age: ', age)

print_info('Tom')
print_info('Jerry', 40)

在上面的代碼中,我們定義了一個函數print_info,它包含兩個參數:name和age。age參數具有默認值35,這意味著可以省略age參數的傳遞。在函數的第一次調用中,只傳遞了一個參數name,沒有傳遞age參數,這時函數會使用默認值35。在第二次調用時,傳遞了兩個參數,分別是name和age,這時函數使用傳遞的參數。

四、可變參數

在 Python 中,函數可以接受任意數量的參數,這些參數可以是位置參數、默認參數或關鍵字參數。使用可變參數,可以傳遞不同數量的參數,這對於編寫靈活的函數非常有用。

1、位置參數

位置參數就是指不帶任何額外符號或名稱的參數。在函數中,可以使用*args來接受任意數量的位置參數。

# 使用位置參數的示例
def print_args(*args):
    print('傳入的參數: ', args)

print_args('a','b','c')

在上面的代碼中,我們定義了一個函數print_args,它使用*args以實現接受任意數量的位置參數。當我們調用函數print_args時,*args收集傳入的所有參數並將其列印出來。

2、關鍵字參數

關鍵字參數就是指使用關鍵字傳遞的參數。關鍵字參數允許在函數調用時指定函數參數的名稱,這會使代碼更具可讀性。在函數中,可以使用**kwargs來接受任意數量的關鍵字參數。

# 使用關鍵字參數的示例
def print_kwargs(**kwargs):
    print('傳入的關鍵字參數: ', kwargs)

print_kwargs(a=1, b=2, c=3)

在上面的代碼中,我們定義了一個函數print_kwargs,它使用**kwargs以實現接受任意數量的關鍵字參數。當我們調用函數print_kwargs時,**kwargs收集傳入的所有關鍵字參數並將其列印出來。

3、混合參數

在函數中也可以混合使用位置參數、關鍵字參數和默認參數,但是位置參數必須在關鍵字參數的前面。

# 混合使用參數的示例
def print_people_info(name, age=35, *friends, **kwargs):
    print('Name: ', name)
    print('Age: ', age)
    print('Friends: ', friends)
    print('Other: ', kwargs)

print_people_info('Tom', 25, 'Bob', 'John', location='New York', job='Engineer')

在上面的代碼中,我們定義了一個函數print_people_info,它包含一個位置參數name、一個默認參數age、一個可變參數friends以及一個關鍵字參數**kwargs。當我們調用函數print_people_info時,前兩個參數是位置參數,後兩個參數分別是可變參數和關鍵字參數。可變參數會收集傳入的位置參數,而關鍵字參數會收集傳入的所有關鍵字參數。

原創文章,作者:YYAPB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/374248.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
YYAPB的頭像YYAPB
上一篇 2025-04-27 15:27
下一篇 2025-04-27 15:27

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python實現畫筆方向改變

    本文將介紹如何在Python中實現畫筆方向改變,讓畫筆以中心為軸旋轉。 一、Tkinter庫概述 Tkinter是Python自帶的GUI庫,可用於創建各種GUI應用程序。在Pyt…

    編程 2025-04-29
  • 運維Python和GO應用實踐指南

    本文將從多個角度詳細闡述運維Python和GO的實際應用,包括監控、管理、自動化、部署、持續集成等方面。 一、監控 運維中的監控是保證系統穩定性的重要手段。Python和GO都有強…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論