Python - Python支持指针吗?
我知道 Python 不支持 指针!但是最近我注意到了一些关于 OpenCV-python 的事情!下面这行代码会在给定的图像上画一个圆,圆心和半径都是指定的,
cv2.circle(image, (x, y), r, (0, 0, 00), thickness=3)
根据 cv2.circle 的文档,返回值是 None
。所以所有的变化都是在给定的图像上发生的。但是我们知道 Python 不支持指针!那么如果可以做到这一点,那是怎么回事呢!?有没有人能帮忙或者提供一个链接!
3 个回答
0
在Python编程时,你不能直接使用指针。也就是说,你不能像在某些其他编程语言中那样声明一个指针。不过,Python在内部确实是用指针来工作的。
虽然这个语言本身没有指针的概念,但它的实现方式是用到了指针。
4
好吧,Python没有指针,但是对象是通过引用传递给函数的(这和Java一样,Java也没有指针)。这个机制跟C语言中通过值传递指针很相似。
变量image
其实只是指向一个对象的引用,而不是对象本身。当你把image
传给函数cv2.circle
时,实际上是把这个引用按值传递过去。函数内部有这个引用的本地副本,但它们实际上指向内存中的同一个对象。这就是为什么在cv2.circle
中image
会被修改。
推荐阅读:引用传递和值传递有什么区别?
还有我如何按引用传递变量?(谢谢,@Wooble!)