有人能解释一下python函数到底是怎么回事吗?

有人能解释一下python函数到底是怎么回事吗?,python,class,oop,Python,Class,Oop,我在python中所知道的是我可以写这样的东西 blabla = Classname().somefunctions() 但在这种情况下,“np.arange”和“reforme”都是函数,这让我感到困惑,因为“np.arange”是一个函数,被当作一个类来对待。问题是这怎么可能 import numpy as np a = np.arange(15).reshape(3, 5) print(a) Python是一种面向对象的语言,其中每个变量都是一个对象np.arangendarray

我在python中所知道的是我可以写这样的东西

blabla = Classname().somefunctions()
但在这种情况下,“np.arange”和“reforme”都是函数,这让我感到困惑,因为“np.arange”是一个函数,被当作一个类来对待。问题是这怎么可能

import numpy as np  
a = np.arange(15).reshape(3, 5)
print(a)

Python是一种面向对象的语言,其中每个变量都是一个对象<代码>np.arange
ndarray
对象。然后,您可以调用
ndarray
对象的
reformate
方法

import numpy as np

a = np.arange(15)

type(a)
Out[148]: numpy.ndarray

a
Out[149]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14])

a = a.reshape(3, 5)

type(a)
Out[151]: numpy.ndarray

a
Out[152]: 
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

我认为你混淆了这种行为:

blabla = Classname().somefunctions()
它通过调用class
Classname()
中的方法
somefunctions()
将返回的值赋给变量
blabla

通过numpy模块中两个函数的链接:
第一个
a=np.arange(15)
创建大小为15的数组,并将其分配给名为
a
的变量,和:
第二个
a.重塑(3,5)
,它将数组
a
重塑为一个由3个数组组成的数组,每个数组包含5个元素

import numpy as np  
a = np.arange(15)    #-> [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
a = a.reshape(3, 5)  #-> [[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]]
print(a)
返回一个
ndarray
对象


但可能让人困惑的是,这是一个将数组作为输入的类方法。但是,有一种等效方法可用于
ndarray
对象。在您的例子中,使用的是后一种方法。

发生这种情况是因为
np.arange(15)
返回类的实例。实际上python中的所有东西都是类。这就是为什么您可以例如执行“HELLO WORLD”.lower()

在这种情况下,代码所做的是计算
np.(arange)
并在
之后重塑(3,5)

因此,这将是等效的:

import numpy as np
a = np.arange(15)
a = a.reshape(3, 5)
print(a)

…被视为一个类
-你能解释一下你所说的话是什么意思吗?