Python中方法的缺省參數(shù)問題解讀
Python 中方法的缺省參數(shù)問題
在Python中可以缺省給方法制定缺省值,但是這個缺省值在某些情況下確是和我們預(yù)期不太一致的…..。 這個詭異的問題,曾經(jīng)困然了我?guī)滋鞎r間,才最終定位出來…..
測試代碼
from datetime import datetime import time
def test(curdate=datetime.now()): print(“The current Time:%s” % curdate.strftime(“%Y-%m-%d %H:%M:%S”)) for i in range(0,10): time.sleep(2) test()
預(yù)期代碼分析
第一次預(yù)計其應(yīng)該打印出不同的時間戳,因為datetime.now()每次的調(diào)用都會生成當(dāng)前的時間點。 但是實際情況確實和這個不一樣的….
直接上結(jié)果:
從輸出的結(jié)果信息來看,每一次都是輸出了相同的時間戳……..
小結(jié):從結(jié)果來看,函數(shù)的反復(fù)調(diào)用中,只會反復(fù)使用第一次調(diào)用之時生成的那個缺省值,這個是我們在使用方法的缺省值之時需要注意的問題。
Python 缺省參數(shù) 不定長參數(shù)
python 缺省參數(shù)
# 缺省參數(shù) # 1. 在定義函數(shù)的時候,給我們形參一個默認(rèn)的數(shù)據(jù),那這個形參就是缺省參數(shù) # 2. 調(diào)用的時候,給缺省參傳遞參數(shù)默認(rèn)值,使用的是傳遞的值 # 3. 在調(diào)用的時候,可以不傳遞數(shù)據(jù)值,那么使用的為默認(rèn)值 def show_info(name="我家小丁永遠(yuǎn)",age= 18) ?? ? print(name,age) # 如果不給缺省參數(shù)賦值,那么輸出的值就為"我家小丁永遠(yuǎn) 18" show_info() # 如果給缺省參數(shù)賦值,那么輸入的結(jié)果為你所賦的值 show_info("我今年馬上",20)
不定長參數(shù)
# 不定長參數(shù) ?(*args ? *kwargs) # ?*args ?,args可以寫成其他變量如:a, b, c.但是建議使用args? # *args是元祖類型(a, b, c), 最直接的特點就是: 可以使用 for in 遍歷 # *args 不定長參數(shù),可以接受位置傳參 def show_info(*args) ?? ? for i in args: ?? ? ?? ?print(i, "人生苦短,我用python", end=" ") ?? ? print() show_info(2)
# 接上 ?另外一種寫法 def show_info(*args) ?? ?print("人生苦短,我用Python", *args) show_info("好好學(xué)習(xí)") show_info("天天向上")
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用PyCharm配合部署Python的Django框架的配置紀(jì)實
這篇文章主要介紹了使用PyCharm配合部署Python的Django框架的配置紀(jì)實,PyCharm是一款強大的Python的IDE,需要的朋友可以參考下2015-11-11PyQt5 關(guān)于Qt Designer的初步應(yīng)用和打包過程詳解
Qt Designer中的操作方式十分靈活,其通過拖拽的方式放置控件可以隨時查看控件效果。這篇文章主要介紹了PyQt5 關(guān)于Qt Designer的初步應(yīng)用和打包,需要的朋友可以參考下2021-09-09PyTorch中view()與?reshape()的區(qū)別詳析
這篇文章主要給大家介紹了關(guān)于PyTorch中view()?與?reshape()?區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01