考虑filterNot
的实现(基本上与filter
相反):
def filterNot(f, sequence):
return filter(lambda x: not f(x), sequence)
参数
f
可以是“函数”或“方法”或lambda
-甚至是其类定义__call__
的对象。现在考虑为该参数设置一行docstring:
:param ??? f: Should return True for each element to be abandoned
现在,应该用什么代替 ??? -如何在文档字符串中引用参数
f
的类型。 callable
是显而易见的选择(如果我调用我:P,我会说些什么),但是是否有既定的约定? 最佳答案
是的,可调用一词是在此使用的术语。
The abstract base class Callable
存在于collections.abc
中-可以将抽象基类最好地视为接口(interface)(例如,在Go中,动态基类比在Java中更动态),它们定义了一个接口(interface),并且具有给定功能的任何类都定义为继承从该抽象基类(无论它们是否显式这样做)中获取数据-这意味着您将有用地传递给此类函数的任何内容都是Callable
的子类,从而使该术语的使用在此处完全正确。就像您可能说的Iterable
一样。
绝对是大多数人在非正式地谈论Python代码时使用的术语,任何阅读您的代码的人都应该了解您的意思。
内置的callable()
(在3.x中删除了一段时间,然后又添加回去)对类函数对象进行检查,这进一步加强了该名称,使其成为查找类函数对象的最佳选择。
关于python - 如何在Python文档字符串中定义 "callable"参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23571253/