我知道 python 不支持支持指针!但最近我注意到了一些关于OpenCV-python的事情!以下行将在给定图像上绘制一个具有指定中心和半径的圆
cv2.circle(image, (x, y), r, (0, 0, 00), thickness=3)
根据cv2.circle doc,返回值为None
。所以所有的变化都发生在给定的图像上。但我们知道python不支持指针!所以,如果有可能这样做,怎么样!?是否有人可以提供帮助或提供链接!
答案 0 :(得分:4)
好吧,python没有指针,但是对象通过引用传递给函数(在java中是另一种没有指针的语言)。这种机制非常类似于在C中按值传递指针。
变量image
仅仅是对象的引用,而不是对象本身。当您将image
传递给函数cv2.circle
时,您实际上会按值传递参考。它是函数中引用的本地副本,但它们基本上指向内存中的同一对象。这就是image
中cv2.circle
被修改的方式。
建议阅读:What's the difference between passing by reference vs. passing by value?
和How do I pass a variable by reference?(谢谢,@ Wooble!)
答案 1 :(得分:1)
答案 2 :(得分:0)
Python在您编码时不会授予您对指针的访问权限。你不能声明一个指针,但当然它在内部使用了指针。
语言没有指针,但实现使用指针。