網站首頁 編程語言 正文
python為main方法傳參
執行python腳本的時候,想給main方法傳入參數的例子
#!/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)
執行結果:
[root@xili]# python test1.py ?1 2
1
2
python函數傳參的幾種方式
python函數的參數類型分為以下五種
- 位置參數
- 默認參數
- 可變參數(*args)
- 關鍵字參數(**args)
- 命名關鍵字參數
位置參數
調用函數時傳的實參與函數的形參位置上一一對應的參數,如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def info(name,age,major):
? ? print("姓名:%s"%(name))
? ? print("年齡:%s"%(age))
? ? print("職業:%s"%(major))
info("zhulang",27,"IT") ?#實參與形參一一對應
打印結果為:
姓名:zhulang
年齡:27
職業:IT
默認參數
在定義函數的時候,給形參一個默認的值,如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def info(name,major,age=25): #默認參數必須放在位置參數后面,否則出錯
? ? print("姓名:%s"%(name))
? ? print("年齡:%s"%(age))
? ? print("職業:%s"%(major))
info("zhulang","IT")
打印結果為:
姓名:zhulang
年齡:25
職業:IT
注意:
1、一個參數帶參數名,另一個參數不帶參數名,其中默認參數必須帶參數名;
2、如果形參中默認參數在必須參數之前,那么調用函數時實參中默認參數也應當在前面;如果形參中默認參數在必須參 數之后,那么調用函數時實參中默認函數應當在后面,否則會報錯
可變參數
可變參數就是傳入的參數個數是可變的,可以是1個、2個到任意個,還可以是0個,*args將所有的實參的位置參數聚合到一個元組,并將這個元組賦值給args
如下函數:
def calc(l):
? ? sum = 0
? ? for n in l:
? ? ? ? sum += n
? ? return sum
calc([1,2,3]) #參數傳入的是列表,結果為7
如果用可變參數類型傳參,可變成如下:
def calc(*nums):
? ? sum = 0
? ? for n in nums:
? ? ? ? sum += n
? ? return sum
這樣以來,參數可以傳入任意多個,函數內部,參數接受到的是一個元組,傳入參數時,可寫成:cal(1,2,3,4),可跟多個參數,無限制寫下去,如果有一個列表了,想把列表元素傳進去,可寫成如下:
>>> nums = [1, 2, 3]
>>> calc(*nums)
7
*nums表示把nums這個list的所有元素作為可變參數傳進去
關鍵字參數
關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict,在傳遞參數時用等號(=)連接鍵和值
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'}
命名關鍵字參數
和普通關鍵字參數不同,命名關鍵字參數需要一個用來區分的分隔符*,它后面的參數被認為是命名關鍵字參數
#這里星號分割符后面的city、job是命名關鍵字參數
person_info(name, age, *, city, job):
? ? print(name, age, city, job)
?
>>> person_info("zhulang", 17, city = "Beijing", job = "Engineer")
zhulang 17 Beijing Engineer ? ?#看來這里不再被自動組裝為字典
總結:參數在書寫時要遵循一定的順序,即:位置參數、默認參數、變長參數、關鍵字參數、命名關鍵字參數
原文鏈接:https://blog.csdn.net/liuxilil/article/details/107036422
相關推薦
- 2023-03-04 c++元編程模板函數重載匹配規則示例詳解_C 語言
- 2022-07-17 關于python通過新建環境安裝tfx的問題_python
- 2022-11-10 C++?TCP網絡編程詳細講解_C 語言
- 2022-07-11 Python中列表,元組,字典和集合的區別及它們之間的轉換_python
- 2022-09-14 python重寫方法和重寫特殊構造方法_python
- 2023-10-15 AddressSanitizer 查找內存問題
- 2022-12-09 Flask自定義序列化超詳細講解_python
- 2023-03-28 Go實現set類型的示例代碼_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支