【发布时间】:2013-09-11 09:32:51
【问题描述】:
如您所知,在 C/C++ 中,我可以在函数中返回一个指针,并将其用作左值,如下所示:
typedef char* (*func)(char *);
char* foo(char *a) {
return &a[0];
}
char* foo2(char *a) {
return &a[1];
}
void goo(func f, char* a) {
f(a)[0] = 10;
}
int main(void) {
char a[6] = {'a', 'b', 'c', 'd', 'e', 'f'};
goo(foo, a);
}
如何在 Python 中实现(在 Python 函数中返回左值)?
def foo(a):
return a
def foo2(a):
return a[0, :]
import numpy as np
p = np.random.rand(5, 2)
foo(p)[0,:] = [1,2] # ok
foo2(p) = [1, 2] # error
print p
为什么在我的代码中正常和错误??
【问题讨论】:
-
Python 字符串是不可变的;您可以从函数返回 mutable 对象并将它们用作分配目标就好了(如果
f返回一个list,那么f()[0] = 1将分配1到返回的第一个元素列表)。你想达到什么目的?
标签: python c function python-2.7