python函数的参数

时间:2019-09-28
本文章向大家介绍python函数的参数,主要包括python函数的参数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 def my_abs(x):
2     if x >= 0:
3         return x
4     else:
5         return -x
abstest.py

调用模块中的函数:

1 from abstest import my_abs

Python中没有内容的空函数:

def nop():
    pass

参数数据类型检查,可以用内置函数isinstance()实现,如果传入错误的参数类型,函数就可以抛出一个错误。

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x

默认参数必须指向不变对象!

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

位置参数,只能传入一个参数:

1 def calc(numbers):
2     sum = 0
3     for n in numbers:
4         sum = sum + n * n
5     return sum
6 
7 calc([1,2,3])
8 calc((1,2,3))

可变参数,可以传入多个参数,这些可变参数在函数调用时自动组装为一个tuple:

1 def calc(*numbers):
2     sum = 0
3     for n in numbers:
4         sum = sum + n * n
5     return sum
6 
7 calc(1,2,3)
8 calc(*[1,2,3])
9 calc(*(1,2,3))

关键字参数,可以传入多个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict:

1 def person(name, age, **kw):
2     print('name:', name, 'age:', age, 'other:', kw)
3 
4 person('Jack', 24, city='Beijing', job='Engineer')
5 person('Jack', 24, **{'city': 'Beijing', 'job': 'Engineer'})

命名关键字参数,可以限制关键字参数的名字,命名关键字参数必须传入参数名,命名关键字参数可以有缺省值:

1 def person(name, age, *, city='Beijing', job):
2     print('name:', name, 'age:', age, 'city:', city, 'job:', job)
3 
4 person('Jack', 24, city='Beijing', job='Engineer')
5 person('Jack', 24, job='Engineer')

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:

1 def person(name, age, *args, city, job):
2     print('name:', name, 'age:', age, args, 'city:', city, 'job:', job)

请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

原文地址:https://www.cnblogs.com/lldxz/p/11023183.html