# 1.带默认值的参数

def defaultValueArgs(common, defaultStr = "default", defaultNum = 0):
print("Common args", common)
print("Default String", defaultStr)
print("Default Number", defaultNum)   

defaultValueArgs("Test")

#Common args Test
#Default String default
#Default Number 0

defaultValueArgs("Test", "Str", defaultNum = 1)

#Common args Test
#Default String Str
#Default Number 1

defaultValueArgs("Test",  defaultNum = 1)

#Common args Test
#Default String default
#Default Number 1

# 2.带一个星号（*）的函数参数

def singalStar(common, *rest):
print("Common args: ", common)
print("Rest args: ", rest)

singalStar("hello")

#Common args:  hello
#Rest args:  ()

singalStar("hello", "world", 000)

#Common args:  hello
#Rest args:  ('world', 0)

singalStar("hello", ("world", 000))

#Common args:  hello
#Rest args:  (('world', 0),)

singalStar("hello", *("world", 000))
#     singalStar("hello", *("world", 000), "123")    #error

#Common args:  hello
#Rest args:  ('world', 0)

# 3.带两个星号（*）的函数参数

def doubleStar(common, **double):
print("Common args: ", common)
print("Double args: ", double)

doubleStar("hello")

#Common args:  hello
#Double args:  {}

doubleStar("hello", "Test", 24)       #error
doubleStar("hello", x = "Test", y = 24)

#Common args:  hello
#Double args:  {'y': 24, 'x': 'Test'}

#doubleStar("hello", **{"name": "Test", "age": 24}, {"name": "Test2", "age": 24})    #error
#doubleStar("hello", {"name": "Test", "age": 24})    #error
doubleStar("hello", **{"name": "Test", "age": 24})

#Common args:  hello
#Double args:  {'name': 'Test', 'age': 24}

def singalAndDoubleStar(common, *single, **double):
print("Common args: ", common)
print("Single args: ", single)
print("Double args: ", double)

# 4.总结

1. 默认值函数参数。这种函数定义时，第一个有默认值的参数后的每一个参数都必须提供默认值。传参时，可以直接传参，也可以以“默认值参数名=value”的形式传参。
2. 单星号函数参数。单星号函数参数接收的参数组成一个元组。
3. 双星号函数参数。双星号函数参数接收的参数组成一个字典。

def singalStar(common, *rest):
print("Common args: ", common)
print("Rest args: ", rest)

def doubleStar(common, **double):
print("Common args: ", common)
print("Double args: ", double)

def singalAndDoubleStar(common, *single, **double):
print("Common args: ", common)
print("Single args: ", single)
print("Double args: ", double)

def defaultValueArgs(common, defaultStr = "default", defaultNum = 0):
print("Common args", common)
print("Default String", defaultStr)
print("Default Number", defaultNum)

if __name__ == "__main__":
defaultValueArgs("Test")
defaultValueArgs("Test", "default", defaultNum = 1)

singalStar("hello")
singalStar("hello", "world", 000)
singalStar("hello", ("world", 000))
singalStar("hello", ("world", 000), {123: 123})
singalStar("hello", *("world", 000))
#     singalStar("hello", *("world", 000), "123")    #error

doubleStar("hello")
doubleStar("hello", x = "Test", y = 24)
doubleStar("hello", **{"name": "Test", "age": 24})
#     doubleStar("hello", {"name": "Test", "age": 24})    #error

singalAndDoubleStar("hello")
singalAndDoubleStar("hello", "world", 000)
singalAndDoubleStar("hello", "world", 000, {"name": "Test", "age": 24})
singalAndDoubleStar("hello", "world", 000, **{"name": "Test", "age": 24})
singalAndDoubleStar("hello", ("world", 000), {"name": "Test", "age": 24})
#     singalAndDoubleStar("hello", *("world", 000), {"name": "Test", "age": 24})      #error
singalAndDoubleStar("hello", *("world", 000), **{"name": "Test", "age": 24})

• 本文已收录于以下专栏：

## python中带星号/一个星号/两个星号的参数

def function_with_one_star(*t):     print(t, type(t)) def function_with_two_stars(**d)     prin...

## Python函数的各种参数用法(含星号参数)

Python中函数的参数有4种形式，分别是： 位置或关键字参数(Positional-or-keyword parameter)仅位置的参数(Positional-only parameter)...

## Python函数参数中的星号*（关键字参数与非关键字参数）

• syylx
• 2015年03月10日 17:46
• 5662

## Python中参数前加星号的用法

Python中参数前加星号的用法 2014-6-26阅读269 评论0 刚开始折腾Python，今天发现了一个很奇怪的错误。 python">def accept(*s): prin...

## python 函数参数的传递(参数带星号的说明)及调用

python中函数参数的传递是通过赋值来传递的。函数参数的使用又有俩个方面值得注意：1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题，在python中函数参数的定义主...

## python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

python 函数参数的传递(参数带星号的说明) 元组传递 字典传递 分类： Python 2012-07-21 11:06 402人阅读 评论(0) 收藏 举报 pytho...
• lionzl
• 2013年05月05日 18:51
• 621

## python 函数参数的传递(参数带星号的说明)

举报原因： 您举报文章：Python带星号*的函数参数 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)