2005年07月09日 星期六 19:35
limodou,您好!
好文章,把关于引用的机制都集中讲了.
不过好像对常量没怎么讲哈,其实py对常量对象的处理也是有猫腻的
>>>id(1)
>>>id(1)
>>>id(2)
>>>id(2)
>>>id('abc')
>>>id('abc')
>>>id((1,))
>>>id((1,))
>>>x=(1,)
>>>id(x[0])
观察这里的结果可以发现规律:
数值型常量、字符串性常量的标识符是恒定的
其他常量,比如tuple都是变化的
真还搞不懂啥意思?
没有试验跟名字空间有没有关系,即在不同namespace中是否常量1的标识符都是一样的
======= 2005-07-09 17:30:00 您在来信中写道:=======
>其中第二篇是天成的修订,链接与全文见下:
>
>《python的对象与名字绑定》 http://blog.csdn.net/jrgao/archive/2004/03/04/22248.aspx
>
2005年07月09日 星期六 19:41
没什么猫腻,只是一个理解问题。
你只要把1理解为Integer的static member,那么一切就都迎刃而解了。
>>> a = 1
>>> b = 1
>>> id(a) == id(b) == id(3-2) == id(int(0.5*2))
True
不过Python的各个类在具体处理的时候并不想同
>>> a = "abc"
>>> b = "abc"
>>> id(a) == id(b)
True
>>> id(a) == id('ab' + 'c')
False
这个处理同Java的String非常相似
至于自定义的类的instance,list,tuple,dict之类的容器,就都不存在static member这回事了。
On 7/9/05, amingsc <amingsc at 163.com> wrote:
> limodou,您好!
> 好文章,把关于引用的机制都集中讲了.
> 不过好像对常量没怎么讲哈,其实py对常量对象的处理也是有猫腻的
> >>>id(1)
> >>>id(1)
> >>>id(2)
> >>>id(2)
> >>>id('abc')
> >>>id('abc')
> >>>id((1,))
> >>>id((1,))
> >>>x=(1,)
> >>>id(x[0])
> 观察这里的结果可以发现规律:
> 数值型常量、字符串性常量的标识符是恒定的
> 其他常量,比如tuple都是变化的
> 真还搞不懂啥意思?
> 没有试验跟名字空间有没有关系,即在不同namespace中是否常量1的标识符都是一样的
>
> ======= 2005-07-09 17:30:00 您在来信中写道:=======
>
> >其中第二篇是天成的修订,链接与全文见下:
> >
> >《python的对象与名字绑定》 http://blog.csdn.net/jrgao/archive/2004/03/04/22248.aspx
> >
>
>
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
2005年07月09日 星期六 19:54
写的非常不错。把基本概念讲得清清楚楚了。新手们应该认真看看。
2005年07月09日 星期六 20:38
amingsc wrote: > limodou,您好! > 好文章,把关于引用的机制都集中讲了. > 不过好像对常量没怎么讲哈,其实py对常量对象的处理也是有猫腻的 [...] 强烈不建议使用foxmail在列表中发言,会破坏讨论线索 参见列表FAQ http://wiki.woodpecker.org.cn/moin/PythonCN/FAQ -- Qiangning
Zeuux © 2025
京ICP备05028076号