Python中有无括号的函数?

2024-04-26 17:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

为什么大小函数不需要用括号来表示,而方差函数则不需要?这背后有没有一个总的计划,或者你只需要记住它的每一个功能?你知道吗

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

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

为什么不写a.round_a.round_()?你知道吗


Tags: 函数功能numpy示例参数sizevarnp
2条回答

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

听起来你好像被3个不同的概念弄糊涂了,它们不是python特有的,而是(面向对象的)编程。你知道吗

  • 属性是对象的值、特征。就像array.shape
  • 方法是对象可以运行的函数,它可以执行的操作。array.mean()
  • 静态方法是一类对象固有的函数,但不需要像np.round_()那样执行对象

听起来您应该研究OOP:here is a python primer on methods。你知道吗


另外,一种更具python风格和特殊性的属性是^{}s,它们是(对象的)方法,不使用()调用。听起来有点奇怪,但可能是有用的,看看吧。你知道吗

相关问题 更多 >