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中传指针。改变了指针指向的内容。但是函数的指针只是参数指针的拷贝。
相关问答:
我每次上传的文件读到的数据都不正确。2M 的图片读得10多K 。。哪位大侠可以帮帮我啊。
#!D:\ProgrammerTools\python26\python.exe
#encoding=utf-8
import cgitb
import os
cgitb.enable()
import cgi,urllib ......
我现在有一个需求是这样的
我有2个类
class A
{
public:
int val;
}
class B
{
public:
A a
}
现在在脚本中只能
b.a.val = 1
我在python中想使用
b.a = 1
......
如何使用python,将下面的网页
http://quotes.money.163.com/corp/1034/code=600221.html
那张资产负债表抓取出来,发到一个文本文件中?
请留下qq,我拜你为师
Python code:
import re
import url ......
python的PIL库自带的方法只能进行矩形的切割,如果我有了一个多边形各个顶点的坐标,如何对现有的图片按照这个多边形进行切割呢?
不一定要用PIL库,任何能实现这个功能的方法都行。
图片切割的js不是很多吗?
......