Python定义函数,,其他形式1:1、定义


其他形式1:

1、定义函数

def test4(a = ()):

print(‘################test4################‘)

print(type(a))

print(a)

2、调用函数

正确调用:

test4((1, 2)) #a在函数体内部为tuple类型

test4(a=(1, 2)) #a在函数体内部为tuple类型

test4((1,)) #a在函数体内部为tuple类型

test4(a=(1,)) #a在函数体内部为tuple类型

test4((1)) #a在函数体内部为int类型,非tuple类型

test4(a=(1)) #a在函数体内部为int类型,非tuple类型

test4(1) #a在函数体内部为int类型,非tuple类型

test4(a=1) #a在函数体内部为int类型,非tuple类型

错误调用:

test4(1, 2) #TypeError: test4() takes at most 1 argument (2 given)

test4(1, b=2) #TypeError: test4() got an unexpected keyword argument ‘b‘

test4(a=1, b=2) #TypeError: test4() got an unexpected keyword argument ‘b‘

5

其他形式2:

1、定义函数

def test5(b = {}):

print(‘################test5################‘)

print(type(b))

print(b)

2、调用函数

正确调用:

test5({‘a‘:2}) #b在函数体内部为dict类型

test5(b={‘a‘:2})

test5({‘a‘:2,‘b‘:3})#b在函数体内部为dict类型

test5(b={‘a‘:2,‘b‘:3})

test5(b=2) #b在函数体内部为int类型,非dict类型

错误调用:

test5(a=1, b=2) #TypeError: test5() got an unexpected keyword argument ‘a‘

test5(1, 2) #TypeError: test5() takes at most 1 argument (2 given)

test5(1, b=2) #TypeError: test5() got multiple values for keyword argument ‘b‘

6

其他形式3:

1、定义函数

def test6(a = (), b = {}):

print(‘################test6################‘)

print(type(a))

print(a)

print(type(b))

print(b)

2、调用函数

正确调用:

test6(1, 2)

test6(a=1, b=2)

test6(a=1, b=2)

test6((1, 2), {‘c‘:8})

test6({‘c‘:8})

test6(b={‘c‘:8})

test6((1, 2), b=2)

test6((1, 2), b=2)

错误调用:

test6(a=1, 2) #SyntaxError: non-keyword arg after keyword arg

test6(1, 2, b=2) #TypeError: test6() got multiple values for keyword argument ‘b‘

Python定义函数

评论关闭