Python中有括号还是没有括号的函数? 在Python中,有需要括号的函数,还有一些不需要的函数,例如,考虑下面的例子: a = numpy.arange(10) print(a.size) print(a.var())

Python中有括号还是没有括号的函数? 在Python中,有需要括号的函数,还有一些不需要的函数,例如,考虑下面的例子: a = numpy.arange(10) print(a.size) print(a.var()),python,numpy,syntax,Python,Numpy,Syntax,为什么与方差函数相反,size函数不需要用括号编写?这背后有没有一个通用的方案,或者你只需要记住每个函数 此外,还有一些函数是在参数之前编写的(与上面的示例相反),如 为什么不编写a.round\uu或a.round()?arrange返回一个size不是一个函数,它只是ndarray类的一个属性。因为它只是一个值,而不是一个可调用的值,所以它不带括号。听起来您好像被3个不同的概念混淆了,它们不是python特有的,而是(面向对象)编程特有的 属性是对象的值和特征。像array.shape 方

为什么与方差函数相反,size函数不需要用括号编写?这背后有没有一个通用的方案,或者你只需要记住每个函数

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


为什么不编写
a.round\uu
a.round()

arrange
返回一个
size
不是一个函数,它只是
ndarray
类的一个属性。因为它只是一个值,而不是一个可调用的值,所以它不带括号。

听起来您好像被3个不同的概念混淆了,它们不是python特有的,而是(面向对象)编程特有的

  • 属性是对象的值和特征。像
    array.shape
  • 方法是对象可以运行的函数,以及它可以执行的操作<代码>数组.mean()
  • 静态方法是一类对象固有的函数,但不需要像
    np.round()那样执行对象
听起来您应该研究OOP:



此外,一种更具python风格和特定类型的属性是s。它们是不使用
()
调用的(对象的)方法。听起来有点奇怪,但可能有用;查看它。

这里,
size
不是一个方法/函数,而是一个属性,因此不需要参数,因为它没有被“调用”。(我意识到它可能是一个描述符,但这肯定超出了范围)。一个更完整的答案可能实际上解释了
size
var
都被类似地查找,然后
var
被调用。
np.round_uuu(…)
因为您调用的方法属于
np
-而不是属于ndarray
A
-您不需要记住它们,您可以查找它们:-方法需要(),属性不需要;仅仅为了这一点而阅读所有OOP都是过分的;如果你遵循链接,它不是关于一般的oop,也许我应该更新
a = numpy.arange(10)
print(np.round_(a))