易截截图软件、单文件、免安装、纯绿色、仅160KB

python的函数是传值还是传引用?

新手,对Python的函数默认是传值还是传引用不太了解。

这样也能够解释复合类型的行为:
Python code:
>>> a=[1,2]
>>> def f(b):
... b[0]='a'
>>> a
[1, 2]
>>> f(a)
>>> a
['a', 2]
f(b)中的b和外面的a本来就是同一个对象嘛,对b[0]赋值等同于对a[0]赋值。

我一个朋友说不明白,我再说一下
a=3; a=4在Python中和C++中是不一样的
Python中是由系统生成了一个新的对象4(地址当然改变了),然后让a重新指向4。
C++中a是一个内存地址的记号,a=4是将a所指的内存处的值更改为4,a的地址不变。

分析的不错,不过通过分析,我的结论是全部传值。
>>> a=3
>>> def f(b):
...    b=1
...   
>>> f(a)
>>> a
3
传值 如果传引用外面的a应该bind到1上,而不是出了函数就自动用绑回3

>>> a=[1,2]
>>> def f(b):
...    b[0]='a'
>>> a
[1, 2]
>>> f(a)
>>> a
['a', 2]
传值,只不过外面的a和里面的b都是对[1,2]这个list的应用,相当于c中传指针。改变了指针指向的内容。但是函数的指针只是参数指针的拷贝。





相关问答:

Python中的Unicode在Delphi如何还原成Gb2312?

已知Python 中:
s = unicode("测试", "gb2312")
s = u'\u6d4b\u8bd5'
print s
测试

在Delphi里面如何将\u6d4b\u8bd5这样的还原成Gb2312的汉字呢?
找到个方法
......

python正则表达式 如何取出以下字符串 多谢

s='aaa111aaa,bbb222,333ccc,444ddd444,555eee666,fff777ggg'
用正则表达式取出 前后字母相同的数据 结果如下:
111 ddd
谢谢~
Python code:

import re
s='aaa111aaa,bbb222,333ccc,444ddd444,555eee666,ff ......

IIS 7 python 2.6 cgi 文件上传问题

我每次上传的文件读到的数据都不正确。2M 的图片读得10多K 。。哪位大侠可以帮帮我啊。
#!D:\ProgrammerTools\python26\python.exe
#encoding=utf-8
import cgitb
import os
cgitb.enable()
import cgi,urllib ......

python 3.x的if语句

>>> x=-1
>>> if x>0:
print ('11')

>>> else:

SyntaxError: invalid syntax (<pyshell#20>, line 1)
网上搜的也是:
>>> x=int(input("Please ent ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号