抱歉,如果已经有人问过这个问题,我不确定如何用一句话准确地描述我的问题。我正在为我的生物信息学类(class)做一些工作,并且我已经开始看到调用函数时声明的变量,而不仅仅是传递参数(请参见下面的第 5 行)。
def sobelFilter(pixmap):
matrix = array([[-1, 0, 1],
[-2, 0, 2],
[-1, 0, 1]])
grey = pixmap.mean(axis=2) #<---here
edgeX = convolveMatrix2D(grey, matrix)
edgeY = convolveMatrix2D(grey, matrix.T)
pixmap2 = sqrt(edgeX * edgeX + edgeY * edgeY)
normalisePixmap(pixmap2)
return pixmap2
当axis
不再使用时,grey = pixmap.mean(axis=2)
的目的是什么?为什么不直接说grey = pixmap.mean(2)
?
如果我的问题有必要,这只是我们使用的代码,而不是我自己编写的。 Pixmap引用这段代码:
def imageToPixmapRGB(img):
img2 = img.convert("RGB")
w,h = img2.size
data = img2.getdata()
pixmap = array(data, float)
pixmap = pixmap.reshape((h,w,3))
return pixmap
最佳答案
没有初始化名为 axis
的局部变量,您只是明确说明要传递的函数的哪个参数。
如果函数中有多个可选参数,您可以使用它:
示例:
In [9]: def foo(x=2, y=2):
...: print(x, y)
...:
In [10]: foo(y=3)
2 3
如果我想更改 y
,但将 x
保留为默认值,则必须在调用函数时指定。
即使您没有设置特定的可选参数,通过关键字传递参数也没有问题。
关于Python 在函数调用中声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49713333/