python函数如何传引用,以修改某个变量?
比如:
def add(str):
str += 'b'
str='aaa'
add(str)
print str
我希望add之后str为'aaab'
但是以上结果则还是'aaa'
可见python虽说都是传引用,但其实还是传值的效果!!!!!!!!!!!
[解决办法]
那是因为str本身是一个不可改变的量
执行str+='b'后str的引用已经不是执行这条语句之前的那个引用了
你用可以改变的类型,比如列表,就可以在函数内部修改变量
[解决办法]
同意LS。再说了,一般的String对象传值就可以了,自定义的对象都是传引用过去的。
[解决办法]
[code=Python][/code]
def add(str):
str += 'b'
return str
str = 'aaa'
str = add(str)
print str
[解决办法]
global
[解决办法]
>>> class C(object):... i = 10... >>> C<class '__main__.C'>>>> C.i10>>> def test(obj):... obj.i = 100... >>> test(C)>>> C.i100
[解决办法]
引用不行就传值
> def add(str): str+='b' return strres=add(str)
[解决办法]
python新手同问
[解决办法]
def add(str):
global str //加上全局变量定义告诉add函数,str是外面的变量
str += 'b'
return str
str = 'aaa'
str = add(str)
print str
[解决办法]
是不是你定义的函数没有返回值,而且函数中str是局部变量!!
[解决办法]
把str 当做返回值 传出来
或者 global