我想将一个C应用程序移植到Python,并且有很多指针。这些是平等的:Python中的C风格指针,这是正确的吗?
obj->position = (float*) malloc(obj->totalItems * obj->xyz * sizeof (float));
for (i = 0; i < components; i++) {
obj->comps[i].position = obj->position + obj->pOffset; // Pointer arithmetic
obj->pOffset += obj->comps[i].items * obj->xyz;
}
而且
for i in range(self.totalItems * self.xyz):
self.position.append(0.0)
for i in range(self.components):
self.comps[i].position = self.position[self.pOffset:] # Position was a C pointer
self.pOffset += self.comps[i].items * self.xyz
我知道Python对象是通过引用传递,所以我想知道如果:
self.comps[N].position = [1,2,3,4]
会改变的某些部分:
self.position[]
谷歌搜索'蟒蛇pointer' - 第二届结果:http://mail.python.org/pipermail/edu-sig/2008-May/008531.html – SeanC 2012-08-02 18:42:47
@SeanCheshire:你有一个很好的解释。这是另一个[其他语言有变量,Python有名字](http:// python。net /〜goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables)(这次有图片) – jfs 2012-08-02 21:28:02