Python - 为什么类列在内置函数列表中?

标签 python

Python 文档将 property() 列为 built-in function .

然而,函数description在文档中前面有关键字“class”。

class property(fget=None, fset=None, fdel=None, doc=None)

这也发生在

class set([iterable])

class slice(stop)

这是什么意思? - 为什么类列在内置函数下。这只是文档问题还是有技术原因?

编辑:我不是在问 property() 是如何工作的。

最佳答案

Python glossary定义一个函数为:

A series of statements which returns some value to a caller. It can also be passed zero or more arguments which may be used in the execution of the body.

一个类可以传递参数,并返回一个值给调用者,所以根据这个定义可以说类函数*。

此外(正如 deceze 在评论中指出的那样),一个类应该始终返回其自身的一个实例——setpropertyslice 等都分别返回 setpropertyslice 等的实例——所以 setproperty 和 friends 都是也是类,因此它们被记录为:

class set([iterable])

意思是 set 是一个类,而不是它返回一个类。

我猜想 set 等记录在“内置函数”页面中,因为 a) 它们是可调用的,并且 b) 拥有“你可以做的事情”的所有文档很方便在一个地方调用"。

*严格来说,isinstance(C, types.FunctionType) 对于任何类 C 都是假的(据我所知),但是类肯定是可调用的( isinstance(C, typing.Callable) 为真),这可能是一个更值得考虑的有用属性。

关于Python - 为什么类列在内置函数列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439619/

相关文章:

python - 从 Python 子进程调用 Perl 脚本中的 GetOptions

python - lambda 在此 python 代码中做了什么?

python字典按值获取

python - 多个列表和大小的所有可能排列

python - 用一个变量求大量函数的根

python - 从日期时间列中提取日期作为数组

python - 在 Python 3.x 中使用 PyInstaller 编译 gettext 语言环境

python - 如何矢量化 Pandas 函数,该函数计算属于一个组且介于两个日期之间的行?

python - 使用python将 war 部署到tomcat

c++ - 在 C++ 中嵌入 python,我需要安装 python