美文网首页
Python3 - 只接受关键字参数的函数

Python3 - 只接受关键字参数的函数

作者: 惑也 | 来源:发表于2018-12-23 20:34 被阅读23次

问题

希望函数的某些参数强制使用关键字参数传递

解决方案

强制关键字参数 放到某个*参数或者单个*后面就能达到这种效果。比如:

def recv(maxsize, *, block):
    'Receives a message'
    pass

recv(1024, True) # TypeError
recv(1024, block=True) # Ok

利用这种方法,还能在接受任意多个位置参数的函数中指定关键字参数。比如:

def min_num(*nums, clip=None):
    m = min(nums)
    if clip is not None:
        m = clip if clip > m else m 
    return m

print(min_num(1, 5, 2, -5, 10))
-5

print(min_num(1, 5, 2, -5, 10, clip=0))
0

讨论

使用 强制关键字参数 会比使用 位置参数 表意更加清晰,程序也更加具有可读性。

使用 强制关键字参数 也会比使用**kwargs参数更好,因为在使用函数help的时候输出也会更容易理解。

强制关键字参数 在一些更高级场景同样也很有用。 例如,它们可以被用来在使用*args**kwargs参数作为输入的函数中插入参数。

相关文章

  • Python3 - 只接受关键字参数的函数

    问题 希望函数的某些参数强制使用关键字参数传递 解决方案 将 强制关键字参数 放到某个*参数或者单个*后面就能达到...

  • Python 强化训练:第五篇

    强化训练:第五篇 主题:函数 基本定义方法 任意数量参数 只接受关键字参数 显示数据类型 默认参数 匿名函数 N个...

  • python小知识

    函数的可变参数 *args: 接受普通参数,以元祖形式保存。**kwargs:接受关键字参数,以字典形式保存。更新...

  • Python高级部分

    函数部分 动态(万能)参数 动态参数分为两种:动态接受位置参数,动态接受关键字参数 动态接受位置参数 动态接收位置...

  • python 编写只接受关键字参数的函数

    7.2 如何让函数只接受关键字参数 将关键字参数放置在以* 打头的参数或者是一个单独的*之后,如下

  • Python 函数

    调用函数 定义函数 函数的参数必选参数、默认参数、可变参数、关键字参数、命名关键字参数 位置参数 默认参数 可变参...

  • Python11学习-函数

    调用函数第一函数函数的参数 (必选参数、默认参数、*可变参数、**关键字参数和命名关键字参数)递归函数 注意事项:...

  • Flask - 视图函数views的操作

    一、视图-路由 路由对应视图函数,并且可以接受参数。 参数类型 路劲参数 位置参数 关键字参数 请求参数 g...

  • pythoncookbook 第7章 函数

    [toc] 第7章 函数 7.1 任意参数 *args **kwargs 使用 7.2 只能接受关键字参数 (py...

  • 函数柯里化

    函数柯里化:是一个能够把接受多个参数的函数转换为只接受一个参数的的函数,并且返回接受余下的参数,最终返回结果

网友评论

      本文标题:Python3 - 只接受关键字参数的函数

      本文链接:https://www.haomeiwen.com/subject/vntokqtx.html