def funcA(a=1,b):
print a,b
报错:SyntaxError: non-default argument follows default argument
# -*- coding: UTF-8 -*
def funcA(a, b=2):
print a,b
if __name__ == '__main__':
funcA(2)
funcA(1, 3)
- list 参数使用*
def funcA(a, b):
print a, b
li = [3, 2, 1]
funcA(*li) # wrong call
def funcB(a, b, c):
print a, b, c
funcB(*li) # right call
funcA(*li)
TypeError: funcA() takes exactly 2 arguments (3 given)
- 元组类似list 使用*
def funcA(k1, k2=2):
print k1
print k2
if __name__ == '__main__':
tup1 = (1,5)
funcA(*tup1)
单独的(5),表示int 5,而不是元组
- dict使用 **
def funcA(k1, k2):
print "k1", k1
print "k2", k2
if __name__ == '__main__':
di = {
"k1":1,
"k2":2,
}
funcA(**di)
缺省参数
def funcA(k1, k2=2):
print "k1", k1
print "k2", k2
if __name__ == '__main__':
li = [3, 2, 1]
di = {
"k1":1,
}
funcA(**di)
如下代码会报错
def funcA(k1, k2=2):
print "k1", k1
print "k2", k2
if __name__ == '__main__':
li = [3, 2, 1]
di = {
"k2":1,
}
funcA(**di)