Python中方法的缺省參數(shù)問題解讀
更新時間:2022年12月19日 14:43:28 作者:bladestone
這篇文章主要介紹了Python中方法的缺省參數(shù)問題解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
Python 中方法的缺省參數(shù)問題
在Python中可以缺省給方法制定缺省值,但是這個缺省值在某些情況下確是和我們預期不太一致的…..。 這個詭異的問題,曾經(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()
預期代碼分析
第一次預計其應該打印出不同的時間戳,因為datetime.now()每次的調用都會生成當前的時間點。 但是實際情況確實和這個不一樣的….
直接上結果:

從輸出的結果信息來看,每一次都是輸出了相同的時間戳……..
小結:從結果來看,函數(shù)的反復調用中,只會反復使用第一次調用之時生成的那個缺省值,這個是我們在使用方法的缺省值之時需要注意的問題。
Python 缺省參數(shù) 不定長參數(shù)
python 缺省參數(shù)
# 缺省參數(shù)
# 1. 在定義函數(shù)的時候,給我們形參一個默認的數(shù)據(jù),那這個形參就是缺省參數(shù)
# 2. 調用的時候,給缺省參傳遞參數(shù)默認值,使用的是傳遞的值
# 3. 在調用的時候,可以不傳遞數(shù)據(jù)值,那么使用的為默認值
def show_info(name="我家小丁永遠",age= 18)
?? ? print(name,age)
# 如果不給缺省參數(shù)賦值,那么輸出的值就為"我家小丁永遠 18"
show_info()
# 如果給缺省參數(shù)賦值,那么輸入的結果為你所賦的值
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("好好學習")
show_info("天天向上")總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
剖析Python的Tornado框架中session支持的實現(xiàn)代碼
這篇文章主要介紹了剖析Python的Tornado框架中session支持的實現(xiàn)代碼,這樣就可以使用Django等框架中大家所熟悉的session了,需要的朋友可以參考下2015-08-08
python中csv文件創(chuàng)建、讀取及修改等操作實例
很多程序在處理數(shù)據(jù)時都會碰到csv這種格式的文件,下面這篇文章主要給大家介紹了關于python中csv文件創(chuàng)建、讀取及修改等操作的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05

