python中為main方法傳參問(wèn)題
python為main方法傳參
執(zhí)行python腳本的時(shí)候,想給main方法傳入?yún)?shù)的例子
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author(s): xili # @Created: 2020/6/30 import sys ? if __name__ == '__main__': ? ? arg1 = sys.argv[1] ? ? arg2 = sys.argv[2] ? ? print(arg1) ? ? print(arg2)
執(zhí)行結(jié)果:
[root@xili]# python test1.py 1 2
1
2
python函數(shù)傳參的幾種方式
python函數(shù)的參數(shù)類(lèi)型分為以下五種
- 位置參數(shù)
- 默認(rèn)參數(shù)
- 可變參數(shù)(*args)
- 關(guān)鍵字參數(shù)(**args)
- 命名關(guān)鍵字參數(shù)
位置參數(shù)
調(diào)用函數(shù)時(shí)傳的實(shí)參與函數(shù)的形參位置上一一對(duì)應(yīng)的參數(shù),如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def info(name,age,major):
? ? print("姓名:%s"%(name))
? ? print("年齡:%s"%(age))
? ? print("職業(yè):%s"%(major))
info("zhulang",27,"IT") ?#實(shí)參與形參一一對(duì)應(yīng)打印結(jié)果為:
姓名:zhulang
年齡:27
職業(yè):IT
默認(rèn)參數(shù)
在定義函數(shù)的時(shí)候,給形參一個(gè)默認(rèn)的值,如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def info(name,major,age=25): #默認(rèn)參數(shù)必須放在位置參數(shù)后面,否則出錯(cuò)
? ? print("姓名:%s"%(name))
? ? print("年齡:%s"%(age))
? ? print("職業(yè):%s"%(major))
info("zhulang","IT")打印結(jié)果為:
姓名:zhulang
年齡:25
職業(yè):IT
注意:
1、一個(gè)參數(shù)帶參數(shù)名,另一個(gè)參數(shù)不帶參數(shù)名,其中默認(rèn)參數(shù)必須帶參數(shù)名;
2、如果形參中默認(rèn)參數(shù)在必須參數(shù)之前,那么調(diào)用函數(shù)時(shí)實(shí)參中默認(rèn)參數(shù)也應(yīng)當(dāng)在前面;如果形參中默認(rèn)參數(shù)在必須參 數(shù)之后,那么調(diào)用函數(shù)時(shí)實(shí)參中默認(rèn)函數(shù)應(yīng)當(dāng)在后面,否則會(huì)報(bào)錯(cuò)
可變參數(shù)
可變參數(shù)就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是1個(gè)、2個(gè)到任意個(gè),還可以是0個(gè),*args將所有的實(shí)參的位置參數(shù)聚合到一個(gè)元組,并將這個(gè)元組賦值給args
如下函數(shù):
def calc(l): ? ? sum = 0 ? ? for n in l: ? ? ? ? sum += n ? ? return sum calc([1,2,3]) #參數(shù)傳入的是列表,結(jié)果為7
如果用可變參數(shù)類(lèi)型傳參,可變成如下:
def calc(*nums): ? ? sum = 0 ? ? for n in nums: ? ? ? ? sum += n ? ? return sum
這樣以來(lái),參數(shù)可以傳入任意多個(gè),函數(shù)內(nèi)部,參數(shù)接受到的是一個(gè)元組,傳入?yún)?shù)時(shí),可寫(xiě)成:cal(1,2,3,4),可跟多個(gè)參數(shù),無(wú)限制寫(xiě)下去,如果有一個(gè)列表了,想把列表元素傳進(jìn)去,可寫(xiě)成如下:
>>> nums = [1, 2, 3] >>> calc(*nums) 7
*nums表示把nums這個(gè)list的所有元素作為可變參數(shù)傳進(jìn)去
關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)允許你傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict,在傳遞參數(shù)時(shí)用等號(hào)(=)連接鍵和值
def person_info(name, age, **kw):
? ? print("name", name, "age", age, "other", kw)
>>> person_info("zhulang", 12)
name zhulang age 12 other{}
>>> person_info("zhulang", 27, city = "Beijing")
name zhulang age 27 other {'city':'Beijing'}命名關(guān)鍵字參數(shù)
和普通關(guān)鍵字參數(shù)不同,命名關(guān)鍵字參數(shù)需要一個(gè)用來(lái)區(qū)分的分隔符*,它后面的參數(shù)被認(rèn)為是命名關(guān)鍵字參數(shù)
#這里星號(hào)分割符后面的city、job是命名關(guān)鍵字參數(shù)
person_info(name, age, *, city, job):
? ? print(name, age, city, job)
?
>>> person_info("zhulang", 17, city = "Beijing", job = "Engineer")
zhulang 17 Beijing Engineer ? ?#看來(lái)這里不再被自動(dòng)組裝為字典總結(jié):參數(shù)在書(shū)寫(xiě)時(shí)要遵循一定的順序,即:位置參數(shù)、默認(rèn)參數(shù)、變長(zhǎng)參數(shù)、關(guān)鍵字參數(shù)、命名關(guān)鍵字參數(shù)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
據(jù)Python爬蟲(chóng)不靠譜預(yù)測(cè)可知今年雙十一銷(xiāo)售額將超過(guò)6000億元
已經(jīng)是十一月十號(hào)了,雙十一即將到來(lái),電商早已預(yù)熱多日,為了在實(shí)戰(zhàn)中獲得能力的提升,本篇文章手把手帶你用Python來(lái)預(yù)測(cè)一下今年雙十一的銷(xiāo)售額將會(huì)達(dá)到多少,大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11
簡(jiǎn)單介紹一下pyinstaller打包以及安全性的實(shí)現(xiàn)
這篇文章主要介紹了簡(jiǎn)單介紹一下pyinstaller打包以及安全性的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg
這篇文章主要為大家介紹了PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python用turtle庫(kù)繪畫(huà)圣誕樹(shù)
大家好,本篇文章主要講的是python用turtle庫(kù)繪畫(huà)圣誕樹(shù),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下2023-04-04
python中的信號(hào)通信 blinker的使用小結(jié)
信號(hào)是一種通知或者說(shuō)通信的方式,信號(hào)分為發(fā)送方和接收方,信號(hào)的特點(diǎn)就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過(guò)本文給大家介紹python中的信號(hào)通信 blinker的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-10-10
Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù)
這篇文章主要介紹了Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù),Python的一大應(yīng)用就是數(shù)據(jù)分析了,而數(shù)據(jù)分析中,經(jīng)常碰到需要處理Excel數(shù)據(jù)的情況。這里做一個(gè)Python處理Excel數(shù)據(jù)的總結(jié),需要的小伙伴可以參考一下2022-01-01
使用apidoc管理RESTful風(fēng)格Flask項(xiàng)目接口文檔方法
下面小編就為大家分享一篇使用apidoc管理RESTful風(fēng)格Flask項(xiàng)目接口文檔方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Python?return函數(shù)返回值類(lèi)型和幫助函數(shù)使用教程
這篇文章主要為大家介紹了Python?return函數(shù)返回值類(lèi)型和幫助函數(shù)使用教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

