python - 带或不带括号的 Python 函数?

标签 python numpy syntax

<分区>

在 Python 中,有些函数需要括号,有些则不需要,例如考虑以下示例:

a = numpy.arange(10)
print(a.size)
print(a.var())

为什么size函数不需要写括号,而不是方差函数?这背后是否有一个通用方案,还是您只需要为每个功能记住它?

此外,还有一些函数写在参数之前(与上面的示例相反),例如

a = numpy.arange(10)
print(np.round_(a))

为什么不写a.round_a.round_()

最佳答案

听起来您对 3 个不同的概念感到困惑,它们不是特定于 Python,而是特定于(面向对象)编程。

  • attributes 是值,对象的特征。喜欢array.shape
  • 方法 是一个对象可以运行的函数,它可以执行的操作。 array.mean()
  • 静态方法 是一类对象固有的函数,但不需要像 np.round_()
  • 这样的对象来执行

听起来您应该研究一下 OOP:here is a python primer on methods .


此外,一种更符合 Python 风格的特定属性是 property秒。它们是不使用 () 调用的(对象的)方法。听起来有点奇怪但很有用;调查一下。

关于python - 带或不带括号的 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50773874/

相关文章:

python - 列重新编号 Pandas Dataframe

python - 假设函数未完全集成到 SymPy 中

python - 了解PyTorch einsum

python - 如何reshape()numpy中奇数行和偶数行的总和

javascript - Python、jQuery、C 语法在语法方面有多相似?

java - Java 中硬编码值的句法特征 "long foo = 12L;"样式转换的技术名称是什么?

python - 属性错误 : 'Namespace' object has no attribute

python pickle UnicodeDecodeError

python - 将数据帧中的特定列转换为 numpy 数组并与原始数据帧合并

c++ - 静态成员的声明和初始化