python 函数使用方法 总结

版权声明:诸葛老刘所有 https://blog.csdn.net/weixin_39791387/article/details/84317054


最近在进阶, 更系统更深入的学习python, 总结下

1. 可以接受任意数量的参数

def anyargs(*args, **kwargs):
    print(args)  # A tuple
    print(kwargs)  # A dict

在上面的函数中,所有的位置参数都会放到元组args中, 所有关键字参数都会放到字典kwargs中.

2. 将元数据信息附加到函数参数上

def add(x:int, y:int) -> int:
    return x + y

通常只有类和字符串最有意义

3. 定义带有默认参数的函数

注意:

  1. 默认参数的赋值只会在函数定义的时候绑定一次
  2. 给默认参数赋值的应该总是不可变对象, 比如None, True, False,数字或字符串
# 不要这么写,为什么? 请参考cookbook 227页.
def func(a, b=[]):
    return a, b

# 可以这么写
def func(a, b=None):
    if not b:
        b = []

4. (推荐学习)让带有N个参数的可调用对象以较少的参数形式调用

如果要减少函数的参数数量, 应该使用functools.partial(), 函数partial() 允许我们给一个或多个参数指定固定的值,以此减少需要提供给之后调用的参数数量.假设有这么一个函数

def func(a, b, c, d):
    print(a, b, c, d)

现在使用partial() 来对参数进行赋固定的值 :

# 引入依赖包
In [1]: from functools import partial
# 定义一个测试函数
In [2]: def func(a, b, c, d):
   ...:     print(a, b, c, d)
   ...:
# 给出一个固定值, 若没有指定参数名, 则按位置依次赋值给参数
In [3]: s1 = partial(func, 10)

In [4]: s1(20,30,40)
10 20 30 40

In [5]: s2 = partial(func, 10, 30)

In [6]: s2(40, 60)
10 30 40 60
# 固定值赋值给指定的参数
In [7]: s3 = partial(func, d=100)

In [8]: s3(200,300,500)
200 300 500 100

5. 用函数替代只有单个方法的类

在多数情况下,只有单个方法的类可以通过闭包(closure)将其转换成函数.

猜你喜欢

转载自blog.csdn.net/weixin_39791387/article/details/84317054