在 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
秒。它们是不使用 ()
调用的(对象的)方法。听起来有点奇怪但很有用;调查一下。