易截截图软件、单文件、免安装、纯绿色、仅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中传指针。改变了指针指向的内容。但是函数的指针只是参数指针的拷贝。





相关问答:

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 ......

boost.python c++嵌入python如何重载=?

我现在有一个需求是这样的
我有2个类
class A
{
public:
int val;
}

class B
{
public:
A a
}

现在在脚本中只能
b.a.val = 1
我在python中想使用
b.a = 1
......

拜师贴:如何使用python抓取网页数据

如何使用python,将下面的网页
http://quotes.money.163.com/corp/1034/code=600221.html
那张资产负债表抓取出来,发到一个文本文件中?
请留下qq,我拜你为师


Python code:
import re
import url ......

python 图像多边形切割

python的PIL库自带的方法只能进行矩形的切割,如果我有了一个多边形各个顶点的坐标,如何对现有的图片按照这个多边形进行切割呢?
不一定要用PIL库,任何能实现这个功能的方法都行。

图片切割的js不是很多吗?
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号