欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Python中的函數傳遞問題

 更新時間:2021年11月18日 09:24:59   作者:雷學委  
這篇文章主要為大家介紹了Python函數傳遞問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

函數參數如何傳遞

key-value方式傳遞參數:

下面是非常常見的傳遞方式,參數名寫直白,寫死了:

def show_info(name, title):
    print("姓名為:",name)
    print("職稱為:",title)

我們在使用的時候可以用以下的方式:

show_info('雷學委', '大學生Python學習社區(qū)長')
show_info(name='雷學委', title='持續(xù)學習協會會長')

可以寫成這樣,使用兩個*,這樣非常靈活,但是缺點也是明顯的(結構靈活有時候需要判斷是否漏傳,直接取容易出錯)

def show_info_v2(**kv_dict):
    print("姓名為:", kv_dict['name'])
    print("職稱為:", kv_dict['title'])
show_info_v2(name='雷學委', title='大學生Python學習社區(qū)長')

下面是效果,看起來一樣的。

在這里插入圖片描述

動態(tài)長度參數傳遞

通常使用*加參數名。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hello
def show_info(name, title):
    print("姓名為:", name)
    print("職稱為:", title)
show_info('雷學委', '大學生Python學習社區(qū)區(qū)長')
show_info(name='雷學委', title='持續(xù)學習協會會長')
def show_info_v2(name, title, *info):
    print("姓名為:", name)
    print("職稱為:", title)
    print("其他評價:", info)
show_info_v2('雷學委', '大學生Python學習社區(qū)區(qū)長', "熱愛技術", "熱愛生活")

運行效果如下:

在這里插入圖片描述

參數是否會被函數攥改?

我們看看下面的程序即可:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hello
def compute_v1(list):
    sum = 0
    for x in list:
        sum += x
    list = list + [sum]
    print("新地址:", id(list))
    return sum
def compute_v2(list):
    sum = 0
    for x in list:
        sum += x
    list[0] = list[0] * 100
    return sum
_list = [1, 2, 3, 4, 5]
print("調用計算函數v1之前:", _list)
print("調用計算函數v1之前內存地址:", id(_list))
print(compute_v1(_list))
print("調用計算函數v1之后:", _list)
print("調用計算函數v1之后內存地址:", id(_list))
_list = [1, 2, 3, 4, 5]
print("調用計算函數v2之前:", _list)
print("調用計算函數v2之前內存地址:", id(_list))
print(compute_v2(_list))
print("調用計算函數v2之后:", _list)
print("調用計算函數v2之后內存地址:", id(_list))

這里兩個compute函數,一個修改參數引用地址,一個并沒有修改參數引用而是修改了引用內存空間的關聯地址(一個變量)的值。

可以說它們都成功了。但是外面的_list 的地址是任何時候都不會被修改的,除非賦值新地址(也就是在調用v2之前重新復制那次)

下面是運行結果:

屏幕快照 2021-10-31 下午10.34.46.png

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • Python正則獲取、過濾或者替換HTML標簽的方法

    Python正則獲取、過濾或者替換HTML標簽的方法

    這篇文章主要介紹了Python通過正則表達式獲取、過濾或者替換HTML標簽的方法,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Python?Pandas中append方法舉例詳解

    Python?Pandas中append方法舉例詳解

    這篇文章主要給大家介紹了關于Python?Pandas中append方法的相關資料,在Pandas中append()方法用于將一個或多個DataFrame或Series添加到DataFrame中,需要的朋友可以參考下
    2023-12-12
  • 快速入手Python字符編碼

    快速入手Python字符編碼

    本文不談復雜的理論,就經驗教大家字符處理八字真言:確定編碼,同類交互。教大家快速戰(zhàn)勝Python字符編碼。
    2016-08-08
  • Python數據結構與算法之鏈表,無序鏈表詳解

    Python數據結構與算法之鏈表,無序鏈表詳解

    這篇文章主要為大家詳細介紹了Python數據結構與算法之鏈表,使用數據庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python使用tkinter寫一個本地密碼管理器

    Python使用tkinter寫一個本地密碼管理器

    閑來無事,看到自己有很多網站的賬戶密碼,有些網站可能打開一兩次也就忘記了,下一次在輸入賬戶密碼就想不起來,這樣很容易丟失賬號。所以本文就來用Python和tkinter寫一個本地密碼管理器吧
    2023-05-05
  • Python海龜繪圖詳解

    Python海龜繪圖詳解

    python2.6版本中后引入的一個簡單的繪圖工具,叫做海龜繪圖(Turtle Graphics),出現在1966年的Logo計算機語言。海龜繪圖(turtle庫)是python的內部模塊,使用前導入即可。本文就帶大家深入了解一下海龜繪圖,快來跟隨小編一起學習吧
    2021-12-12
  • python操作ini類型配置文件的實例教程

    python操作ini類型配置文件的實例教程

    這篇文章主要給大家介紹了關于python操作ini類型配置文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • python?判斷字符串當中是否包含字符(str.contain)

    python?判斷字符串當中是否包含字符(str.contain)

    這篇文章主要介紹了python?判斷字符串當中是否包含字符(str.contain),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Python利用yarl實現輕松操作url

    Python利用yarl實現輕松操作url

    在諸如網絡爬蟲、web應用開發(fā)等場景中,我們需要利用Python完成大量的url解析、生成等操作。本文為大家介紹了Pythonyarl操作url的方法,需要的可以了解一下
    2022-10-10
  • 簡單且有用的Python數據分析和機器學習代碼

    簡單且有用的Python數據分析和機器學習代碼

    Python編程是一種通用的編程語言,開源、靈活、功能強大且易于使用,python最重要的特性之一是其用于數據處理和分析任務的豐富實用程序和庫集,這篇文章主要給大家介紹了一些簡單且有用的Python數據分析和機器學習代碼,需要的朋友可以參考下
    2021-07-07

最新評論