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号