python的函数怎么使用传递引用的方式?

global是全局变量,不是引用。
“引用”本身就违反严格的结构化程序设计思路,更违反OO
“引用”本质上就是C的传指针,改地址里的内容,就这么回事情

自己的理解还是有什么根据。
能引用一些东西,证明你的结论是对的吗??

“本质上就是C的传指针” 这个也太武断点了。


QUOTE:
原帖由 limodou 于 2006-7-4 15:12 发表
python不支持直接的引用参数传递,因为python可以一次返回多个值,所以这个问题在python提得不多。可以传入可变参数,然后在函数中进行修改,如list, dict, object等。

问一个,这个应该就是传递引用吧。
只有象整数,字符川,元组之类的才是传值的。


QUOTE:
原帖由 gooderfeng 于 2006-7-5 18:21 发表


问一个,这个应该就是传递引用吧。
只有象整数,字符川,元组之类的才是传值的。

不是。因为传入的list, dict, object本身还是值,只不过可以修改它的内容,所以可以间接实现引用。但不是真正的引用。
因为传入的list, dict, object本身还是值,只不过可以修改它的内容,所以可以间接实现引用

什么机制,比如c++中,是变量名对应相同的地址,在python中那
这种机制与C一样啊。在C中传入一个指针,指针本身是不会变化的,因为C中也是值参的形式,但你可以修改指针指向的地址的内容。
首先我要说,指针和引用不是同一个东西,在一个c中没有引用的概念。
c中本质上可以说都是传值的,但是还是说传递指针的时候,可以修改指针指向的地址的数据。
那么在python中因为没有指针的概念,当传递一个参数给函数的时候,函数是如何区别是简单类型数据,还是传递的是类那。
我有点困惑,昨天写python例子的时候没办法就象您说的我传递的是一个list来对应获得引用的功能。
当然引用与指针不同了。我已经说过python都是传值,没有引用。而且C也都是传值没有引用,指针象引用,但指针仍然要复制,而引用不复制。

在python中的变量一种是你知道是什么类型,这是一种约定,通过看程序或看文档来约定的。因此你使用时就已经预先假定了数据类型。再有就是通过“自省”的功能来判断一个变量的类型。

举个list的例子:

[Copy to clipboard] [ - ]
CODE:
def p(a): #假定a是一个list
    a.append(1)

t = []
p(t)

这样t在调用了p()之后由[]变成了[1]。t本身没有变,但它的内容变化了。这就是引用类似的例子。原理就是传入的对象的值可以变化,因此与C中的指针类型。在python中可变类型有list, dict, object。
t本身没有变,但它的内容变化了。

t本身没有变,本身是什么那???
t不是一个列表嘛。每个对象都有自已的一个地址或id。一个列表可以存其它的对象。你说这个列表与它的内容是一个东西嘛?