【python基礎】四、python函數 可變參數 *args**kwargs

筆記

基礎概念

python包 packages.py

  • 項目:
    • 包1
      • xx1.py
      • xx2.py
    • 包2
      • xx1.py
      • xx2.py

函數.py

def 函數名([參數, 參數, ]):
    函數體

調試

  1. 先打斷點
  2. shift + F9
  3. step over (F8)
  4. step into F7
  5. step into mycode
  6. force step into
  7. stp out
  8. run to cursor
  9. evalute expression

書寫規範 PEP8

判斷類型

type 只能找出是 什麼類型,不好判斷
isinstance()

isinstance(3, int)

函數 可變參數

def add(*args):
    print(args)

# 參數個數不確定
add()  # 輸出空 元組 ()
add(1)
add('a', 2, 'love', [1, 2])

‘*’ 拆裝包!
*args = # 底層準備好容器(), 等待裝包

  • 可變參數 和 固定參數 同時存在:
    • 可變參數往後放, 類比 元組 * 賦值
def add(name, age, *args):
   s = int(0)
   for i in args:
       s += i
   print(name, 'age is', age, 'sum is', s)


add('Jam', 23, 1, 2, 3, 4)
帶有 默認值 參數
def func(a,b,c=0):
    pass

關鍵字參數

def func(**kwargs):     # key-word argument
    # 函數 以字典形式 存儲 
    pass
    
func()
func(a=1, b=2, c=3)  # 必須 k= w 格式賦值 

也就是說:一顆星 * 默認生成元組來存儲
兩顆星號 ** 默認 字典存儲

  • 如何傳入字典: 拆包 - 裝包
func({'a': 'py', 'b': 'c++'})   
  • 爲什麼報錯:
    • 因爲沒有按照 k=v 格式傳入
func(**{'a': 'py', 'b': 'c++'})
  • 爲什麼不報錯:

    • 首先字典的拆包: k:v
    • 然後 傳入 裝包
  • 總彙

def bb(a, b, *c, **d):
    print(a, b, c, d)

函數 返回值

  • return
    • 有返回值,必須有接收賦值
    • 多個接收
def func_r():
    return 1,2,3
    
a, b, c = func_r()

全局變量

不可變的 全局變量 在函數裏
可直接獲取,但是 修改 需聲明
(可變元素的修改不需要)

def func():
    global xxx
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章