python函數傳參和返回值注意事項


函數傳參

  • 空參數
    定義函數時括號里面沒有形參,調用時不用傳參。
def func():
    print('null para.')

# 調用
func()
  • 位置傳參
    規定形參的數量,調用時必須傳遞相同數量的形參。
def func(a, b):
    print(a,b)

# 調用
func(11, 22)
  • 帶默認參數的形參
    帶默認值的參數位於非默認值參數的后面, 即位於位置參數,可變參數后面。
def func(a, b, c=0):
    print(a, b, c)

# 調用
func(11, 22)
  • 傳遞元組型可變參數
def f2(a, b, *args):
    print(a)
    print(b)
    print(args)

rest =  f2(10, 20, 30, 40, 50)
print(rest)
執行結果:
10
20
(30, 40, 50)

  • 元組傳參傳遞的另一種方式:
def f2(a, b, *args):
    print(a)
    print(b)
    print(args)

my_tuple = (30, 40, 50)
rest =  f2(10, 20, *my_tuple)
print(rest)
執行結果:
10
20
(30, 40, 50)

除位置參數10, 20以后的數據自動賦值給了元組形參*args
如果只傳10,20這2個參數給f2函數也不會報錯,此時元組接收的參數為空。
  • 傳遞字典型可變參數
def f2(a, b, **kwargs):
    print(a)
    print(b)
    print(kwargs)

rest =  f2(10, 20, ka=558, kb='bbb')
print(rest)
執行結果:
10
20
{'ka': 558, 'kb': 'bbb'}
  • 傳遞字典參數的另一種形式:
def f2(a, b, **kwargs):
    print(a)
    print(b)
    print(kwargs)

kw_para = {'ka': 558,' kb': 'bbb'}

rest =  f2(10, 20, **kw_para)
print(rest)
執行結果:
10
20
{'ka': 558, 'kb': 'bbb'}
  • 位置參數、元組參數、字典參數混合傳參
def f2(a, b, *args, **kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)

my_kw = {'ka': 558, 'kb': 'bbb'}
my_tuple = (30, 40, 50)
rest =  f2(10, 20, *my_tuple, **my_kw)
print(rest)
結果:
10
20
(30, 40, 50)
{'ka': 558, 'kb': 'bbb'}
按位置參數、元組參數、字典參數的順序定義函數和調用,位置順序不能調換!
除非有帶默認參數的位置參數,此時帶有默認參數的位置參數需要放到元組參數和字典參數之間。
  • 帶有默認參數的位置參數、元組參數、字典參數混合傳參
def f2(a, *args, b=0, **kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)

my_kw = {'ka': 558, 'kb': 'bbb'}
my_tuple = (30, 40, 50)
rest =  f2(10, *my_tuple, **my_kw)
print(rest)
結果:
10
0
(30, 40, 50)
{'ka': 558, 'kb': 'bbb'}

函數返回值

  • 函數執行完不出現return語句,或者return語句不返回值,此時調用者收到的返回值為None。
  • 可以返回一個元組。
def func():
    return 1, 2, 3

x, y, z = func()

  • 返回其他對象等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM