Python - Python是否支持指针?

时间:2014-04-09 17:26:17

标签: python opencv

知道 python 不支持支持指针!但最近我注意到了一些关于OpenCV-python的事情!以下行将在给定图像上绘制一个具有指定中心和半径的圆

cv2.circle(image, (x, y), r, (0, 0, 00), thickness=3)

根据cv2.circle doc,返回值为None。所以所有的变化都发生在给定的图像上。但我们知道python不支持指针!所以,如果有可能这样做,怎么样!?是否有人可以提供帮助或提供链接!

3 个答案:

答案 0 :(得分:4)

好吧,python没有指针,但是对象通过引用传递给函数(在java中是另一种没有指针的语言)。这种机制非常类似于在C中按值传递指针。

变量image仅仅是对象的引用,而不是对象本身。当您将image传递给函数cv2.circle时,您实际上会按值传递参考。它是函数中引用的本地副本,但它们基本上指向内存中的同一对象。这就是imagecv2.circle被修改的方式。

建议阅读:What's the difference between passing by reference vs. passing by value?

How do I pass a variable by reference?(谢谢,@ Wooble!)

答案 1 :(得分:1)

我建议你阅读维基百科上的evaluation strategy文章。

Python做call by sharing(这是说法的同义词:按值传递对象的引用)

我认为我能够比这些文章更好地解释它。

答案 2 :(得分:0)

Python在您编码时不会授予您对指针的访问权限。你不能声明一个指针,但当然它在内部使用了指针。

语言没有指针,但实现使用指针。