2004年08月08日 星期日 07:49
wish you a good day: 在整理笔记中有一个问题,举例子如下: >>> a="time" >>> b="time" >>> id(a) 12616688 >>> id(b) 12616688#id值可以看出a,b指向且都指向“time" >>> a=['time'] >>> b=['time'] >>> id(a) 15300640 >>> id(b) 15300680#可以看除a,b 指向了 “【"time"】”但两个time却不同。 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) 谢谢 zhou_hunter --------------------------------- Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040808/163fc22c/attachment.htm
2004年08月08日 星期日 08:00
wish you a good day: 补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! zhou hunter <zhou_hunter2000 at yahoo.com.cn> wrote: wish you a good day: 在整理笔记中有一个问题,举例子如下: >>> a="time" >>> b="time" >>> id(a) 12616688 >>> id(b) 12616688#id值可以看出a,b指向且都指向“time" >>> a=['time'] >>> b=['time'] >>> id(a) 15300640 >>> id(b) 15300680#可以看除a,b 指向了 “【"time"】”但两个time却不同。 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) 谢谢 zhou_hunter --------------------------------- Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese --------------------------------- Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040808/bc1e2258/attachment.html
2004年08月08日 星期日 08:09
老兄学的真细啊!我都没有注意这些问题。 我倒是不明白,我什么a='time';b='time的时候会相同。 你看我这样理解对不对,'time'事实上一个一个常量,因此, 他在内存中有一个地址。那个,把一个常量赋给两个不同的变 量,其id应该是相同的。 而对于list来说,list应该是变量,因此创建的时候,地址应该 是不相同的。这两个['time']因此在内存重视两个东西。他要准 备你随时对其进行更改。例如你更改了其中一个list,那么不可 能让另一个list也更改吧。 另外,id这个东西是不是应该和c中的指针差不多阿。 --- zhou hunter <zhou_hunter2000 at yahoo.com.cn> 的正文: > wish you a good day: > > 补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! > > zhou hunter <zhou_hunter2000 at yahoo.com.cn> wrote: > wish you a good day: > 在整理笔记中有一个问题,举例子如下: > >>> a="time" > >>> b="time" > >>> id(a) > 12616688 > >>> id(b) > 12616688#id值可以看出a,b指向且都指向“time" > >>> a=['time'] > >>> b=['time'] > >>> id(a) > 15300640 > >>> id(b) > 15300680#可以看除a,b 指向了 > “【"time"】”但两个time却不同。 > 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 > 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 > 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) > > 谢谢 > zhou_hunter > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!> _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
2004年08月08日 星期日 08:36
wish you a good day: 刚学python,我希望把注意到的问题解决,谢谢。 1,我的资料强调了变量的一个“指向性”的问题,那么我是一直注意指向的问题。 2,你的第一个解释认为:当变量指向(赋值)给常量的时候,因为常量是唯一的,所以指向同一常量的变量应该具有相同的内存位置。我理解并比较认同这一点,非常感谢。 3,至于第二点我还需要思考一下,首先你认为列表是变量,所以创建的地址不同,然后你推出所以给变量赋值变量的话,指向性也产生差异。 4,因为我的基础还是欠佳,所以我需要在想或查一下,谢谢你的指教。因为有朋友告诉我熟悉底层的机理对学习编程是有益的,所以我问了,非常感谢!我希望再看看其它朋友的意见。 wish you a good day! mike gaul <zopemaillistcn at yahoo.com.cn> wrote: 老兄学的真细啊!我都没有注意这些问题。 我倒是不明白,我什么a='time';b='time的时候会相同。 你看我这样理解对不对,'time'事实上一个一个常量,因此, 他在内存中有一个地址。那个,把一个常量赋给两个不同的变 量,其id应该是相同的。 而对于list来说,list应该是变量,因此创建的时候,地址应该 是不相同的。这两个['time']因此在内存重视两个东西。他要准 备你随时对其进行更改。例如你更改了其中一个list,那么不可 能让另一个list也更改吧。 另外,id这个东西是不是应该和c中的指针差不多阿。 --- zhou hunter 的正文: > wish you a good day: > > 补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! > > zhou hunter wrote: > wish you a good day: > 在整理笔记中有一个问题,举例子如下: > >>> a="time" > >>> b="time" > >>> id(a) > 12616688 > >>> id(b) > 12616688#id值可以看出a,b指向且都指向“time" > >>> a=['time'] > >>> b=['time'] > >>> id(a) > 15300640 > >>> id(b) > 15300680#可以看除a,b 指向了 > “【"time"】”但两个time却不同。 > 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 > 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 > 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) > > 谢谢 > zhou_hunter > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!> _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese --------------------------------- Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040808/59d820c3/attachment.htm
2004年08月08日 星期日 12:53
zhou hunter,您好! 可以参考http://blog.csdn.net/jrgao/archive/2004/03/04/22248.aspx <>,另外文章有点小错误,这里是天成的更正:http://blog.csdn.net/dreamingk/archive/2004/07/26/51658.aspx ======== 2004-08-08 08:36:54 您在来信中写道: ======== wish you a good day: 刚学python,我希望把注意到的问题解决,谢谢。 1,我的资料强调了变量的一个“指向性”的问题,那么我是一直注意指向的问题。 2,你的第一个解释认为:当变量指向(赋值)给常量的时候,因为常量是唯一的,所以指向同一常量的变量应该具有相同的内存位置。我理解并比较认同这一点,非常感谢。 3,至于第二点我还需要思考一下,首先你认为列表是变量,所以创建的地址不同,然后你推出所以给变量赋值变量的话,指向性也产生差异。 4,因为我的基础还是欠佳,所以我需要在想或查一下,谢谢你的指教。因为有朋友告诉我熟悉底层的机理对学习编程是有益的,所以我问了,非常感谢!我希望再看看其它朋友的意见。 wish you a good day! mike gaul <zopemaillistcn at yahoo.com.cn> wrote: 老兄学的真细啊!我都没有注意这些问题。 我倒是不明白,我什么a='time';b='time的时候会相同。 你看我这样理解对不对,'time'事实上一个一个常量,因此, 他在内存中有一个地址。那个,把一个常量赋给两个不同的变 量,其id应该是相同的。 而对于list来说,list应该是变量,因此创建的时候,地址应该 是不相同的。这两个['time']因此在内存重视两个东西。他要准 备你随时对其进行更改。例如你更改了其中一个list,那么不可 能让另一个list也更改吧。 另外,id这个东西是不是应该和c中的指针差不多阿。 --- zhou hunter 的正文: > wish you a good day: > > 补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! > > zhou hunter wrote: > wish you a good day: > 在整理笔记中有一个问题,举例子如下: > >>> a="time" > >>> b="time" > >>> id(a) > 12616688 > >>> id(b) > 12616688#id值可以看出a,b指向且都指向“time" > >>> a=['time'] > >>> b=['time'] > >>> id(a) > 15300640 > >>> id(b) > 15300680#可以看除a,b 指向了 > “【"time"】”但两个time却不同。 > 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 > 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 > 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) > > 谢谢 > zhou_hunter > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > > --------------------------------- > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容!> _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容! = = = = = = = = = = = = = = = = = = = = = = 致 礼! hoxide hoxide_dirac at yahoo.com.cn 2004-08-08
2004年08月08日 星期日 13:05
Hollo zhou: FT£¡ ѧµÄ¹ýϸÁËЩ£¿Äã¿´µÄÊÇʲô×ÊÁÏ£¿ ÔÚÏÂÈëÃŵÄÊÇ Learning Python Mark ºÍDavidдµÄ£¬·Ç³£µÄeasy ºÍÃ÷Îú£¡ ˵°×ÁË ÔÚ Python ÖÐÒ»Çж¼ÊǶÔÏó£¬ "time" ÊÇÒ»¸ö×Ö´®³£Á¿£¬ËùÓÐÒýÓÃÖ®µÄ£¬µ±È»ÊÇͬһID£» ["time"]ÊÇ´´½¨Ò»¸öÓÐÒ»¸ö"time"×Ö´®ÔªËصÄÁбí¶ÔÏó; ÿ´Î´´½¨Ò»¸öеÄÁбí¶ÔÏó,µ±È»ID ²»Í¬ÊÇÒ²ºõ!?!? ºÜµ×²ãµÄÀí½â,Ö»ÓÐÔڷdz£¸ß¶ËµÄ³ÌÐòÒªÇóʱ²ÅÓõĵ½, ÏÈ¿ìËÙÆ·³¢Ò»ÏÂ×ÓPython µÄõrÃÀÌØÐÔ°É! ÆäËüµÄ×ÔÈ»»áÔÚÒÔºóÀí½âµÄ; ²»¹ý "ѧ´ÓÄÑ´¦Ñ§,ÓôÓÒ×´¦ÓÃ!" ѧϰ̬¶ÈÕýÈ·ÊÇÒ²ºõ.... ^___^ /******** [2004-08-08]12:59:26 ; zhou wrote: zhou hunter> wish you a good day: zhou hunter> ¸Õѧpython£¬ÎÒÏ£Íû°Ñ×¢Òâµ½µÄÎÊÌâ½â¾ö£¬Ð»Ð»¡£ zhou hunter> 1£¬ÎÒµÄ×ÊÁÏÇ¿µ÷Á˱äÁ¿µÄÒ»¸ö¡°Ö¸ÏòÐÔ¡±µÄÎÊÌ⣬ÄÇôÎÒÊÇÒ»Ö±×¢ÒâÖ¸ÏòµÄÎÊÌâ¡£ zhou hunter> 2£¬ÄãµÄµÚÒ»¸ö½âÊÍÈÏΪ:µ±±äÁ¿Ö¸Ïò£¨¸³Öµ£©¸ø³£Á¿µÄʱºò£¬ÒòΪ³£Á¿ÊÇΨһµÄ£¬ËùÒÔÖ¸Ïòͬһ³£Á¿µÄ±äÁ¿Ó¦¸Ã¾ßÓÐÏàͬµÄÄÚ´æλÖá£ÎÒÀí½â²¢±È½ÏÈÏͬÕâÒ»µã£¬·Ç³£¸Ðл¡£ zhou hunter> 3£¬ÖÁÓÚµÚ¶þµãÎÒ»¹ÐèҪ˼¿¼Ò»Ï£¬Ê×ÏÈÄãÈÏΪÁбíÊDZäÁ¿£¬ËùÒÔ´´½¨µÄµØÖ·²»Í¬£¬È»ºóÄãÍƳöËùÒÔ¸ø±äÁ¿¸³Öµ±äÁ¿µÄ»°£¬Ö¸ÏòÐÔÒ²²úÉú²îÒì¡£ zhou hunter> 4£¬ÒòΪÎҵĻù´¡»¹ÊÇÇ·¼Ñ£¬ËùÒÔÎÒÐèÒªÔÚÏë»ò²éһϣ¬Ð»Ð»ÄãµÄÖ¸½Ì¡£ÒòΪÓÐÅóÓѸæËßÎÒÊìϤµ×²ãµÄ»úÀí¶Ôѧϰ±à³ÌÊÇÓÐÒæµÄ£¬ËùÒÔÎÒÎÊÁË£¬·Ç³£¸Ðл£¡ÎÒÏ£ÍûÔÙ¿´¿´ÆäËüÅóÓѵÄÒâ¼û¡£ zhou hunter> wish you a good day! zhou hunter> mike gaul <zopemaillistcn at yahoo.com.cn> wrote: zhou hunter> ÀÏÐÖѧµÄÕæϸ°¡£¡ÎÒ¶¼Ã»ÓÐ×¢ÒâÕâЩÎÊÌâ¡£ zhou hunter> ÎÒµ¹ÊDz»Ã÷°×£¬ÎÒʲôa='time';b='timeµÄʱºò»áÏàͬ¡£ zhou hunter> Äã¿´ÎÒÕâÑùÀí½â¶Ô²»¶Ô£¬'time'ÊÂʵÉÏÒ»¸öÒ»¸ö³£Á¿£¬Òò´Ë£¬ zhou hunter> ËûÔÚÄÚ´æÖÐÓÐÒ»¸öµØÖ·¡£ÄǸö£¬°ÑÒ»¸ö³£Á¿¸³¸øÁ½¸ö²»Í¬µÄ±ä zhou hunter> Á¿£¬ÆäidÓ¦¸ÃÊÇÏàͬµÄ¡£ zhou hunter> ¶ø¶ÔÓÚlistÀ´Ëµ£¬listÓ¦¸ÃÊDZäÁ¿£¬Òò´Ë´´½¨µÄʱºò£¬µØÖ·Ó¦¸Ã zhou hunter> ÊDz»ÏàͬµÄ¡£ÕâÁ½¸ö['time']Òò´ËÔÚÄÚ´æÖØÊÓÁ½¸ö¶«Î÷¡£ËûҪ׼ zhou hunter> ±¸ÄãËæʱ¶ÔÆä½øÐиü¸Ä¡£ÀýÈçÄã¸ü¸ÄÁËÆäÖÐÒ»¸ölist£¬ÄÇô²»¿É zhou hunter> ÄÜÈÃÁíÒ»¸ölistÒ²¸ü¸Ä°É¡£ zhou hunter> ÁíÍ⣬idÕâ¸ö¶«Î÷ÊDz»ÊÇÓ¦¸ÃºÍcÖеÄÖ¸Õë²î²»¶à°¢¡£ zhou hunter> --- zhou hunter zhou hunter> µÄÕýÎÄ£º >> wish you a good day: >> >> zhou hunter> ²¹³ä£ºÈç¹ûÎÒÊÇÈÃa=["time"],È»ºó£¬a=bµÄ»°£¬ËûÃǵÄidÖµ¾ÍÏàͬ£¬ÎÒ²¢Ã»ÓÐÒòΪÕâÑù¶ø¸ü¼ÓÇåÎú£¬Çë´Í½Ì£¡Ï£Íû²»ÊÇÒòΪ°æ±¾ÎÊÌ⣬ÎÒÓõÄÊÇ×îаæµÄactivepython,лл£¡ >> >> zhou hunter wrote: >> wish you a good day: >> ÔÚÕûÀí±Ê¼ÇÖÐÓÐÒ»¸öÎÊÌ⣬¾ÙÀý×ÓÈçÏ£º >> >>> a="time" >> >>> b="time" >> >>> id(a) >> 12616688 >> >>> id(b) >> 12616688££idÖµ¿ÉÒÔ¿´³öa,bÖ¸ÏòÇÒ¶¼Ö¸Ïò¡°time" >> >>> a=['time'] >> >>> b=['time'] >> >>> id(a) >> 15300640 >> >>> id(b) >> 15300680#¿ÉÒÔ¿´³ýa,b Ö¸ÏòÁË >> ¡°¡¾"time"¡¿¡±µ«Á½¸ötimeÈ´²»Í¬¡£ >> zhou hunter> 1£¬idÊǶÔÊý¾ÝµÄΨһ±êʶ·û£¬"time"Óë"time"ÊÇͬһÊý¾Ý£¬¶øÁбíµÄÈ´½ØÈ»²»Í¬ >> zhou hunter> 2£¬Êý¾ÝÓ¦ÊÇ´¢´æÔÚÄÚ´æµÄ£¬ÄÇô¡°time"Óë'time'ÊÇͬһλÖ㬶øÁбíµÄÈ´²»ÊÇ¡£ >> zhou hunter> ÎÒÏëÇëÎʵ½µ×Ϊʲôһµ©ÁÐ±í£¬¼´Ê¹Ïàͬ±íµÄʵ¼ÊÖ¸ÏòÈ´ÊDz»Í¬µÄ£¬¶ø²»ÁбíÈ´Ïàͬ£¿£¨ÎÒÕýÔÚËÑË÷ÕâЩ×ÊÁÏ£¬Ï£Íû¿ÉÒÔÕÒµ½£© >> >> лл >> zhou_hunter >> >> >> >> --------------------------------- >> Do You Yahoo!? >> 150ÍòÇúMP3·è¿ñËÑ£¬´øÄú´³ÈëÒôÀÖµîÌà >> ÃÀÅ®Ã÷ÐÇÓ¦Óо¡ÓУ¬ËѱéÃÀͼ¡¢ÑÞͼºÍ¿áͼ >> zhou hunter> 1G¾ÍÊÇ1000Õ×£¬ÑÅ»¢µçÓÊ×ÔÖúÀ©ÈÝ£¡_______________________________________________ >> python-chinese list >> python-chinese at lists.python.cn >> http://python.cn/mailman/listinfo/python-chinese >> >> >> >> --------------------------------- >> Do You Yahoo!? >> 150ÍòÇúMP3·è¿ñËÑ£¬´øÄú´³ÈëÒôÀÖµîÌà >> ÃÀÅ®Ã÷ÐÇÓ¦Óо¡ÓУ¬ËѱéÃÀͼ¡¢ÑÞͼºÍ¿áͼ >> 1G¾ÍÊÇ1000Õ×£¬ÑÅ»¢µçÓÊ×ÔÖúÀ©ÈÝ£¡> zhou hunter> _______________________________________________ >> python-chinese list >> python-chinese at lists.python.cn >> http://python.cn/mailman/listinfo/python-chinese >> zhou hunter> _________________________________________________________ zhou hunter> Do You Yahoo!? zhou hunter> 150ÍòÇúMP3·è¿ñËÑ£¬´øÄú´³ÈëÒôÀÖµîÌà zhou hunter> http://music.yisou.com/ zhou hunter> ÃÀÅ®Ã÷ÐÇÓ¦Óо¡ÓУ¬ËѱéÃÀͼ¡¢ÑÞͼºÍ¿áͼ zhou hunter> http://image.yisou.com zhou hunter> 1G¾ÍÊÇ1000Õ×£¬ÑÅ»¢µçÓÊ×ÔÖúÀ©ÈÝ£¡ zhou hunter> http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ zhou hunter> _______________________________________________ zhou hunter> python-chinese list zhou hunter> python-chinese at lists.python.cn zhou hunter> http://python.cn/mailman/listinfo/python-chinese zhou hunter> --------------------------------- zhou hunter> Do You Yahoo!? zhou hunter> 150ÍòÇúMP3·è¿ñËÑ£¬´øÄú´³ÈëÒôÀÖµîÌà zhou hunter> ÃÀÅ®Ã÷ÐÇÓ¦Óо¡ÓУ¬ËѱéÃÀͼ¡¢ÑÞͼºÍ¿áͼ zhou hunter> 1G¾ÍÊÇ1000Õ×£¬ÑÅ»¢µçÓÊ×ÔÖúÀ©ÈÝ£¡ ********************************************/ -- Free as in Freedom Zoom.Quiet #=========================================# ]Time is unimportant, only life important![ #=========================================# sender is the Bat!2.12.00
2004年08月08日 星期日 13:10
zhou hunter,您好! 可以这么理解。在Python中一切东西都是对象,每个对象的使用都是引用来实现的。象你的第一个例子: 'time'是一个对象,a='time'是对'time'的一个引用,a指向'time'的地址,这样'time'的对象计数加1. b='time'是对'time'又一次引用,'time'的对象计数再加1。因为都是引用,所以a,b的指向值是一样的。 list是一个对象的数组。 a=['time']得到的是list的引用,而不是'time'的引用。a[0]才是对'time'的引用。 b=['time']得到的是另一个list的引用,同样不是'time'的引用,但b[0]还是对'time'的引用。 也许你会问为什么a与b不使用同一个引用呢?我想是因为在Python中有可变对象与不可变对象。可变对象是指在运行过程中,对象的值(不是对象本身的地址)是可以改变的,象list你可以增加它的元素。不可变对象是指在运行过程中,对象的值不可以改变。象Python中的字符串,一旦生成就不可以改变。如果想生成新的值,只可以创建新的对象。因此,Python在处理这些不同种类的对象的策略是不同的。对于可变对象,简单的赋值可能只是增加对象的引用计数。但对于可变对象,Python可能会生成新的对象。当然,你的语法必须是对象的构造形式才有这种区别。如果是变量与变量的赋值,那么只是拷贝了一个对象引用。 对象的构造形式我是指: a=['time']或a='time' 这种语法,因为Python的做法是先生成一个对象,然后再将对象的引用赋给变量a。而象 b=a这种语法则只是一个引用的赋值,不会生成新的对象。 象这种细微的差异,可能需要在平时的编程中多多测试可能才会更清楚。曾经在一些Blog中看到过有人对Python的这种语法有所抱怨。抱怨什么呢?他们说在Python中不分引用和对象的创建。的确,有时是先创建对象,再生成引用。有时只是生成引用。其实这种区别主要是存在不同的赋值语句的写法上,这些写法可能没有很明确地表明对象何时生成,何时被引用,但在一些教程中也有说明。希望在读书时多加注意。再加上自已的测试应该还容易理解。 象: a=[1,2] b=a c=a[:] b和c有什么区别,能说一说吗? 这里还有dreamingK写的一篇Blog可能对你的理解有帮助:http://blog.csdn.net/dreamingk/archive/2004/07/26/51658.aspx ======= 2004-08-08 08:36:54 您在来信中写道:======= >wish you a good day: > 刚学python,我希望把注意到的问题解决,谢谢。 >1,我的资料强调了变量的一个“指向性”的问题,那么我是一直注意指向的问题。 >2,你的第一个解释认为:当变量指向(赋值)给常量的时候,因为常量是唯一的,所以指向同一常量的变量应该具有相同的内存位置。我理解并比较认同这一点,非常感谢。 >3,至于第二点我还需要思考一下,首先你认为列表是变量,所以创建的地址不同,然后你推出所以给变量赋值变量的话,指向性也产生差异。 >4,因为我的基础还是欠佳,所以我需要在想或查一下,谢谢你的指教。因为有朋友告诉我熟悉底层的机理对学习编程是有益的,所以我问了,非常感谢!我希望再看看其它朋友的意见。 > wish you a good day! > >mike gaul <zopemaillistcn at yahoo.com.cn> wrote: >老兄学的真细啊!我都没有注意这些问题。 >我倒是不明白,我什么a='time';b='time的时候会相同。 >你看我这样理解对不对,'time'事实上一个一个常量,因此, >他在内存中有一个地址。那个,把一个常量赋给两个不同的变 >量,其id应该是相同的。 >而对于list来说,list应该是变量,因此创建的时候,地址应该 >是不相同的。这两个['time']因此在内存重视两个东西。他要准 >备你随时对其进行更改。例如你更改了其中一个list,那么不可 >能让另一个list也更改吧。 >另外,id这个东西是不是应该和c中的指针差不多阿。 > > >--- zhou hunter >的正文: >> wish you a good day: >> >> >补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! >> >> zhou hunter wrote: >> wish you a good day: >> 在整理笔记中有一个问题,举例子如下: >> >>> a="time" >> >>> b="time" >> >>> id(a) >> 12616688 >> >>> id(b) >> 12616688#id值可以看出a,b指向且都指向“time" >> >>> a=['time'] >> >>> b=['time'] >> >>> id(a) >> 15300640 >> >>> id(b) >> 15300680#可以看除a,b 指向了 >> “【"time"】”但两个time却不同。 >> >1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 >> >2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 >> >我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) >> >> 谢谢 >> zhou_hunter >> >> >> >> --------------------------------- >> Do You Yahoo!? >> 150万曲MP3疯狂搜,带您闯入音乐殿堂 >> 美女明星应有尽有,搜遍美图、艳图和酷图 >> >1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ >> python-chinese list >> python-chinese at lists.python.cn >> http://python.cn/mailman/listinfo/python-chinese >> >> >> >> --------------------------------- >> Do You Yahoo!? >> 150万曲MP3疯狂搜,带您闯入音乐殿堂 >> 美女明星应有尽有,搜遍美图、艳图和酷图 >> 1G就是1000兆,雅虎电邮自助扩容!> >_______________________________________________ >> python-chinese list >> python-chinese at lists.python.cn >> http://python.cn/mailman/listinfo/python-chinese >> > >_________________________________________________________ >Do You Yahoo!? >150万曲MP3疯狂搜,带您闯入音乐殿堂 >http://music.yisou.com/ >美女明星应有尽有,搜遍美图、艳图和酷图 >http://image.yisou.com >1G就是1000兆,雅虎电邮自助扩容! >http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese > > > >--------------------------------- >Do You Yahoo!? >150万曲MP3疯狂搜,带您闯入音乐殿堂 >美女明星应有尽有,搜遍美图、艳图和酷图 >1G就是1000兆,雅虎电邮自助扩容! >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese > = = = = = = = = = = = = = = = = = = = = 致 礼! limodou chatme at 263.net 2004-08-08
2004年08月08日 星期日 13:17
Wm9vbS5RdWlldCzE+rrDo6ENCg0KCbXEyLeho9K7yc/AtLn9t9a12Ne3x/PPuL3atcS12Le9o6zK sbzks6TBy7/JxNy74cq5xOO21FB5dGhvbsqnyKXQy8iktcSho9LyzqrV4tCpx/ix8NTautzJ2bXE tdi3vbLF0OjSqr+8wseho8a9yrG63MnZ0OjSqr+8wsehow0KDQqhoaGhztK1xL2o0unKx8/I1ri7 +bG+tcRQeXRob27T77eo1cbO1aOo0rKyu8rHy7XL+dPQtrzVxs7Vo6mjrNPQ0Km+zcrHsrvVxs7V ttTE48a9yrGx4LPMv8nE3NKyw7vT0Mqyw7TTsM/soaPP887S0rLKx9DttuC2q873wv3C/dGnxvDA tKOs0ae1vdK7tqizzLbIo6zSu7e9w+bX1NLRu+HT0NKqx/PRp8+wuPy24LXEtqvO96Oswe3Su7e9 w+bS1Mew0ae5/bXEtqvO97/JxNzX1Mi7vs3D97DXwcuho7WxyLujrLK7t7S21LWx0/a1vc7KzOLK saOs17e4+b6/tdejrNXi0fmyu7fFuf3Dv9K7uPayu8fls/61xLXYt73Kx7fHs6PIz9XmtcTRp8+w zKy2yKGjztLWu8rHy7WjrLK70qq/zNLix/PPuL7Nv8nS1MHLoaPSu8fQy7PG5NfUyLuhow0KDQo9 PT09PT09IDIwMDQtMDgtMDggMTM6MDU6MjcgxPrU2sC00MXW0NC0tcCjuj09PT09PT0NCg0KPkhv bGxvIHpob3U6DQo+DQo+ICBGVKOhDQo+DQo+0ae1xLn9z7jBy9Cpo7/E47+0tcTKx8qyw7TXysHP o78NCj7U2s/CyOvDxbXEyscgTGVhcm5pbmcgUHl0aG9uIA0KPk1hcmsgus1EYXZpZNC0tcSjrLfH s6O1xGVhc3kgus3D9876o6ENCj4NCj7LtbDXwcsg1NogUHl0aG9uINbQ0rvH0La8yse21M/zo6wN Cj4idGltZSIgysfSu7j219a0rrOjwb+jrMv509DS/dPD1q61xKOstbHIu8rHzazSu0lEo7sNCj5b InRpbWUiXcrHtLS9qNK7uPbT0NK7uPYidGltZSLX1rSu1KrL2LXEwdCx7bbUz/M7DQo+w7+0zrS0 vajSu7j20MK1xMHQse221M/zLLWxyLtJRCCyu82sysfSsrr1IT8hPw0KPg0KPrrctdey47XEwO29 4izWu9PQ1Nq3x7OjuN+2y7XEs8zQ8tKqx/PKsbLF08O1xLW9LA0KPs/Iv+zL2ca3s6LSu8/C19NQ eXRob24gtcT1csPAzNjQ1LDJIQ0KPg0KPsbky/y1xNfUyLu74dTa0tS688DtveK1xDsNCj4NCj6y u7n9DQo+ItGntNPE0bSm0acs08O009LXtKbTwyEiDQo+DQo+0afPsMystsjV/ci3ysfSsrr1Li4u Lg0KPg0KPl5fX19eDQo+DQo+DQo+LyoqKioqKioqIFsyMDA0LTA4LTA4XTEyOjU5OjI2IDsgemhv dSB3cm90ZToNCj4NCj56aG91IGh1bnRlcj4gd2lzaCB5b3UgYSBnb29kIGRheToNCj56aG91IGh1 bnRlcj4gICAgICAgICC41dGncHl0aG9uo6zO0s+jzfuw0dei0uK1vbXEzsrM4r3ivvajrNC70Luh ow0KPnpob3UgaHVudGVyPiAxo6zO0rXE18rBz8e/tffBy7Hkwb+1xNK7uPahsNa4z/LQ1KGxtcTO yszio6zEx8O0ztLKx9K71rHXotLi1rjP8rXEzsrM4qGjDQo+emhvdSBodW50ZXI+IDKjrMTjtcS1 2tK7uPa94srNyM/Oqjq1sbHkwb/WuM/yo6i4s9a1o6m4+LOjwb+1xMqxuvKjrNLyzqqzo8G/ysfO qNK7tcSjrMv50tTWuM/yzazSu7Ojwb+1xLHkwb/TprjDvt/T0M/gzay1xMTatObOu9bDoaPO0sDt veKyorHIvc/Iz82s1eLSu7Xjo6y3x7OjuNDQu6GjDQo+emhvdSBodW50ZXI+IDOjrNbB09q12rb+ tePO0ru50OjSqsu8v7zSu8/Co6zK18/IxOPIz86qwdCx7crHseTBv6Osy/nS1LS0vai1xLXY1rey u82so6zIu7rzxOPNxrP2y/nS1Lj4seTBv7iz1rWx5MG/tcS7sKOs1rjP8tDU0rKy+sn6su7S7KGj DQo+emhvdSBodW50ZXI+IDSjrNLyzqrO0rXEu/m0obu5ysfHt7zRo6zL+dLUztLQ6NKq1NrP67vy sunSu8/Co6zQu9C7xOO1xNa4vcyho9LyzqrT0MXz09G45svfztLK7M+ktdey47XEu/rA7bbU0afP sLHgs8zKx9PQ0ua1xKOsy/nS1M7SzsrBy6Ost8ezo7jQ0Lujoc7Sz6PN+9TZv7S/tMbky/zF89PR tcTS4rz7oaMNCj56aG91IGh1bnRlcj4gICAgd2lzaCB5b3UgYSBnb29kIGRheSENCj4NCj56aG91 IGh1bnRlcj4gbWlrZSBnYXVsIDx6b3BlbWFpbGxpc3RjbkB5YWhvby5jb20uY24+IHdyb3RlOg0K Pnpob3UgaHVudGVyPiDAz9DW0ae1xNXmz7iwoaOhztK2vMO709DXotLi1eLQqc7KzOKhow0KPnpo b3UgaHVudGVyPiDO0rW5yseyu8P3sNejrM7SyrLDtGE9J3RpbWUnO2I9J3RpbWW1xMqxuvK74c/g zayhow0KPnpob3UgaHVudGVyPiDE47+0ztLV4tH5wO294rbUsru21KOsJ3RpbWUnysLKtcnP0ru4 9tK7uPazo8G/o6zS8rTLo6wNCj56aG91IGh1bnRlcj4gy/vU2sTatObW0NPQ0ru49rXY1reho8TH uPajrLDR0ru49rOjwb+4s7j4wb249rK7zay1xLHkDQo+emhvdSBodW50ZXI+IMG/o6zG5Glk06a4 w8rHz+DNrLXEoaMNCj56aG91IGh1bnRlcj4gtvi21NPabGlzdMC0y7WjrGxpc3TTprjDysex5MG/ o6zS8rTLtLS9qLXEyrG68qOstdjWt9OmuMMNCj56aG91IGh1bnRlcj4gyseyu8/gzay1xKGj1eLB vbj2Wyd0aW1lJ13S8rTL1NrE2rTm1tjK08G9uPa2q873oaPL+9Kq17wNCj56aG91IGh1bnRlcj4g sbjE48vmyrG21MbkvfjQ0Lj8uMSho8D9yOfE47j8uMTBy8bk1tDSu7j2bGlzdKOsxMfDtLK7v8kN Cj56aG91IGh1bnRlcj4gxNzIw8Ht0ru49mxpc3TSsrj8uMSwyaGjDQo+emhvdSBodW50ZXI+IMHt zeKjrGlk1eK49rarzvfKx7K7ysfTprjDus1j1tC1xNa41euy7rK7tuCwoqGjDQo+DQo+DQo+emhv dSBodW50ZXI+IC0tLSB6aG91IGh1bnRlciANCj56aG91IGh1bnRlcj4gtcTV/c7Eo7oNCj4+PiB3 aXNoIHlvdSBhIGdvb2QgZGF5Og0KPj4+IA0KPj4+DQo+emhvdSBodW50ZXI+ILK5s+SjusjnufvO 0srHyMNhPVsidGltZSJdLMi7uvOjrGE9YrXEu7CjrMv7w8e1xGlk1rW+zc/gzayjrM7SsqLDu9PQ 0vLOqtXi0fm2+Lj8vNPH5c76o6zH67TNvcyjoc+jzfuyu8rH0vLOqrDmsb7Oyszio6zO0tPDtcTK x9fu0MKw5rXEYWN0aXZlcHl0aG9uLNC70LujoQ0KPj4+IA0KPj4+IHpob3UgaHVudGVyIHdyb3Rl Og0KPj4+IHdpc2ggeW91IGEgZ29vZCBkYXk6DQo+Pj4g1NrV+8Dtscq8x9bQ09DSu7j2zsrM4qOs vtnA/dfTyOfPwqO6DQo+Pj4gPj4+IGE9InRpbWUiDQo+Pj4gPj4+IGI9InRpbWUiDQo+Pj4gPj4+ IGlkKGEpDQo+Pj4gMTI2MTY2ODgNCj4+PiA+Pj4gaWQoYikNCj4+PiAxMjYxNjY4OKOjaWTWtb/J 0tS/tLP2YSxi1rjP8sfStrzWuM/yobB0aW1lIg0KPj4+ID4+PiBhPVsndGltZSddDQo+Pj4gPj4+ IGI9Wyd0aW1lJ10NCj4+PiA+Pj4gaWQoYSkNCj4+PiAxNTMwMDY0MA0KPj4+ID4+PiBpZChiKQ0K Pj4+IDE1MzAwNjgwI7/J0tS/tLP9YSxiINa4z/LByw0KPj4+IKGwob4idGltZSKhv6GxtavBvbj2 dGltZci0srvNrKGjDQo+Pj4NCj56aG91IGh1bnRlcj4gMaOsaWTKx7bUyv2+3bXEzqjSu7Hqyra3 +6OsInRpbWUi0+sidGltZSLKx82s0rvK/b7do6y2+MHQse21xMi0vdjIu7K7zawNCj4+Pg0KPnpo b3UgaHVudGVyPiAyo6zK/b7d06bKx7SitObU2sTatOa1xKOsxMfDtKGwdGltZSLT6yd0aW1lJ8rH zazSu8671sOjrLb4wdCx7bXEyLSyu8rHoaMNCj4+Pg0KPnpob3UgaHVudGVyPiDO0s/rx+vOyrW9 tdfOqsqyw7TSu7WpwdCx7aOsvLTKuc/gzayx7bXEyrW8yta4z/LItMrHsrvNrLXEo6y2+LK7wdCx 7ci0z+DNrKO/o6jO0tX91NrL0cv31eLQqdfKwc+jrM+jzfu/ydLU1dK1vaOpDQo+Pj4gDQo+Pj4g 0LvQuw0KPj4+IHpob3VfaHVudGVyDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gRG8gWW91IFlhaG9vIT8NCj4+PiAxNTDN8sf6TVAz t+i/8cvRo6y0+MT6tLPI69L0wNa17szDDQo+Pj4gw8DFrsP30MfTptPQvqHT0KOsy9Gx6cPAzbyh otHezby6zb/hzbwNCj4+Pg0KPnpob3UgaHVudGVyPiAxR77NyscxMDAw1dejrNHFu6K159PK19TW +sCpyN2joV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ Pj4gcHl0aG9uLWNoaW5lc2UgbGlzdA0KPj4+IHB5dGhvbi1jaGluZXNlQGxpc3RzLnB5dGhvbi5j bg0KPj4+IGh0dHA6Ly9weXRob24uY24vbWFpbG1hbi9saXN0aW5mby9weXRob24tY2hpbmVzZQ0K Pj4+IA0KPj4+IA0KPj4+IA0KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K Pj4+IERvIFlvdSBZYWhvbyE/DQo+Pj4gMTUwzfLH+k1QM7fov/HL0aOstPjE+rSzyOvS9MDWte7M ww0KPj4+IMPAxa7D99DH06bT0L6h09CjrMvRsenDwM28oaLR3s28us2/4c28DQo+Pj4gMUe+zcrH MTAwMNXXo6zRxbuitefTytfU1vrAqcjdo6E+DQo+emhvdSBodW50ZXI+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4gcHl0aG9uLWNoaW5lc2UgbGlz dA0KPj4+IHB5dGhvbi1jaGluZXNlQGxpc3RzLnB5dGhvbi5jbg0KPj4+IGh0dHA6Ly9weXRob24u Y24vbWFpbG1hbi9saXN0aW5mby9weXRob24tY2hpbmVzZQ0KPj4+IA0KPg0KPnpob3UgaHVudGVy PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj56aG91IGh1bnRlcj4gRG8gWW91IFlhaG9vIT8NCj56aG91IGh1bnRlcj4gMTUwzfLH+k1Q M7fov/HL0aOstPjE+rSzyOvS9MDWte7Mww0KPnpob3UgaHVudGVyPiBodHRwOi8vbXVzaWMueWlz b3UuY29tLw0KPnpob3UgaHVudGVyPiDDwMWuw/fQx9Om09C+odPQo6zL0bHpw8DNvKGi0d7NvLrN v+HNvA0KPnpob3UgaHVudGVyPiBodHRwOi8vaW1hZ2UueWlzb3UuY29tDQo+emhvdSBodW50ZXI+ IDFHvs3KxzEwMDDV16Os0cW7orXn08rX1Nb6wKnI3aOhDQo+emhvdSBodW50ZXI+IGh0dHA6Ly9j bi5yZC55YWhvby5jb20vbWFpbF9jbi90YWcvMWcvKmh0dHA6Ly9jbi5tYWlsLnlhaG9vLmNvbS9l dmVudC9tYWlsXzFnLw0KPnpob3UgaHVudGVyPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPnpob3UgaHVudGVyPiBweXRob24tY2hpbmVzZSBsaXN0DQo+ emhvdSBodW50ZXI+IHB5dGhvbi1jaGluZXNlQGxpc3RzLnB5dGhvbi5jbg0KPnpob3UgaHVudGVy PiBodHRwOi8vcHl0aG9uLmNuL21haWxtYW4vbGlzdGluZm8vcHl0aG9uLWNoaW5lc2UNCj4NCj4N Cj4NCj56aG91IGh1bnRlcj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+emhv dSBodW50ZXI+IERvIFlvdSBZYWhvbyE/DQo+emhvdSBodW50ZXI+IDE1MM3yx/pNUDO36L/xy9Gj rLT4xPq0s8jr0vTA1rXuzMMNCj56aG91IGh1bnRlcj4gw8DFrsP30MfTptPQvqHT0KOsy9Gx6cPA zbyhotHezby6zb/hzbwNCj56aG91IGh1bnRlcj4gMUe+zcrHMTAwMNXXo6zRxbuitefTytfU1vrA qcjdo6ENCj4NCj4NCj4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8NCj4NCj4tLSANCj5GcmVlIGFzIGluIEZyZWVkb20NCj4NCj4gWm9vbS5RdWlldCAgICAgICAg ICAgICAgICAgICAgICAgICAgIA0KPg0KPiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PSMNCj5dVGltZSBpcyB1bmltcG9ydGFudCwgb25seSBsaWZlIGltcG9ydGFudCFb DQo+Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iw0KPg0KPnNlbmRl ciBpcyB0aGUgQmF0ITIuMTIuMDANCj4NCj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXw0KPnB5dGhvbi1jaGluZXNlIGxpc3QNCj5weXRob24tY2hpbmVzZUBs aXN0cy5weXRob24uY24NCj5odHRwOi8vcHl0aG9uLmNuL21haWxtYW4vbGlzdGluZm8vcHl0aG9u LWNoaW5lc2UNCj4NCg0KPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9DQoJ CQkNCg0KoaGhoaGhoaGhoaGhoaGhodbCDQrA8aOhDQogDQoJCQkJIA0KoaGhoaGhoaGhoaGhoaGh oWxpbW9kb3UNCqGhoaGhoaGhoaGhoaGhoaFjaGF0bWVAMjYzLm5ldA0KoaGhoaGhoaGhoaGhoaGh oaGhoaEyMDA0LTA4LTA4DQoNCg==
2004年08月08日 星期日 14:08
pythoner,您好! a=[1,2] b=a c=a[:] b和c有什么区别,能说一说吗? 这里的b和a引用的是同一对象,而c 却是a和b所引用的对象的一个copy! 你可以用 id(a) id(b) id(c) 来互相比较一下证实! 在当前的python 版本实现中,id就是此对象在内存中的地址! ======= 2004-08-08 13:10:14 您在来信中写道:======= >zhou hunter,您好! > > 可以这么理解。在Python中一切东西都是对象,每个对象的使用都是引用来实现的。象你的第一个例子: > >'time'是一个对象,a='time'是对'time'的一个引用,a指向'time'的地址,这样'time'的对象计数加1. >b='time'是对'time'又一次引用,'time'的对象计数再加1。因为都是引用,所以a,b的指向值是一样的。 > > list是一个对象的数组。 > a=['time']得到的是list的引用,而不是'time'的引用。a[0]才是对'time'的引用。 > b=['time']得到的是另一个list的引用,同样不是'time'的引用,但b[0]还是对'time'的引用。 > >也许你会问为什么a与b不使用同一个引用呢?我想是因为在Python中有可变对象与不可变对象。可变对象是指在运行过程中,对象的值(不是对象本身的地址)是可以改变的,象list你可以增加它的元素。不可变对象是指在运行过程中,对象的值不可以改变。象Python中的字符串,一旦生成就不可以改变。如果想生成新的值,只可以创建新的对象。因此,Python在处理这些不同种类的对象的策略是不同的。对于可变对象,简单的赋值可能只是增加对象的引用计数。但对于可变对象,Python可能会生成新的对象。当然,你的语法必须是对象的构造形式才有这种区别。如果是变量与变量的赋值,那么只是拷贝了一个对象引用。 > >对象的构造形式我是指: > >a=['time']或a='time' >这种语法,因为Python的做法是先生成一个对象,然后再将对象的引用赋给变量a。而象 >b=a这种语法则只是一个引用的赋值,不会生成新的对象。 > >象这种细微的差异,可能需要在平时的编程中多多测试可能才会更清楚。曾经在一些Blog中看到过有人对Python的这种语法有所抱怨。抱怨什么呢?他们说在Python中不分引用和对象的创建。的确,有时是先创建对象,再生成引用。有时只是生成引用。其实这种区别主要是存在不同的赋值语句的写法上,这些写法可能没有很明确地表明对象何时生成,何时被引用,但在一些教程中也有说明。希望在读书时多加注意。再加上自已的测试应该还容易理解。 > >象: > >a=[1,2] >b=a >c=a[:] > >b和c有什么区别,能说一说吗? > >这里还有dreamingK写的一篇Blog可能对你的理解有帮助:http://blog.csdn.net/dreamingk/archive/2004/07/26/51658.aspx > >======= 2004-08-08 08:36:54 您在来信中写道:======= > >>wish you a good day: >> 刚学python,我希望把注意到的问题解决,谢谢。 >>1,我的资料强调了变量的一个“指向性”的问题,那么我是一直注意指向的问题。 >>2,你的第一个解释认为:当变量指向(赋值)给常量的时候,因为常量是唯一的,所以指向同一常量的变量应该具有相同的内存位置。我理解并比较认同这一点,非常感谢。 >>3,至于第二点我还需要思考一下,首先你认为列表是变量,所以创建的地址不同,然后你推出所以给变量赋值变量的话,指向性也产生差异。 >>4,因为我的基础还是欠佳,所以我需要在想或查一下,谢谢你的指教。因为有朋友告诉我熟悉底层的机理对学习编程是有益的,所以我问了,非常感谢!我希望再看看其它朋友的意见。 >> wish you a good day! >> >>mike gaul <zopemaillistcn at yahoo.com.cn> wrote: >>老兄学的真细啊!我都没有注意这些问题。 >>我倒是不明白,我什么a='time';b='time的时候会相同。 >>你看我这样理解对不对,'time'事实上一个一个常量,因此, >>他在内存中有一个地址。那个,把一个常量赋给两个不同的变 >>量,其id应该是相同的。 >>而对于list来说,list应该是变量,因此创建的时候,地址应该 >>是不相同的。这两个['time']因此在内存重视两个东西。他要准 >>备你随时对其进行更改。例如你更改了其中一个list,那么不可 >>能让另一个list也更改吧。 >>另外,id这个东西是不是应该和c中的指针差不多阿。 >> >> >>--- zhou hunter >>的正文: >>> wish you a good day: >>> >>> >>补充:如果我是让a=["time"],然后,a=b的话,他们的id值就相同,我并没有因为这样而更加清晰,请赐教!希望不是因为版本问题,我用的是最新版的activepython,谢谢! >>> >>> zhou hunter wrote: >>> wish you a good day: >>> 在整理笔记中有一个问题,举例子如下: >>> >>> a="time" >>> >>> b="time" >>> >>> id(a) >>> 12616688 >>> >>> id(b) >>> 12616688#id值可以看出a,b指向且都指向“time" >>> >>> a=['time'] >>> >>> b=['time'] >>> >>> id(a) >>> 15300640 >>> >>> id(b) >>> 15300680#可以看除a,b 指向了 >>> “【"time"】”但两个time却不同。 >>> >>1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 >>> >>2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 >>> >>我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) >>> >>> 谢谢 >>> zhou_hunter >>> >>> >>> >>> --------------------------------- >>> Do You Yahoo!? >>> 150万曲MP3疯狂搜,带您闯入音乐殿堂 >>> 美女明星应有尽有,搜遍美图、艳图和酷图 >>> >>1G就是1000兆,雅虎电邮自助扩容!_______________________________________________ >>> python-chinese list >>> python-chinese at lists.python.cn >>> http://python.cn/mailman/listinfo/python-chinese >>> >>> >>> >>> --------------------------------- >>> Do You Yahoo!? >>> 150万曲MP3疯狂搜,带您闯入音乐殿堂 >>> 美女明星应有尽有,搜遍美图、艳图和酷图 >>> 1G就是1000兆,雅虎电邮自助扩容!> >>_______________________________________________ >>> python-chinese list >>> python-chinese at lists.python.cn >>> http://python.cn/mailman/listinfo/python-chinese >>> >> >>_________________________________________________________ >>Do You Yahoo!? >>150万曲MP3疯狂搜,带您闯入音乐殿堂 >>http://music.yisou.com/ >>美女明星应有尽有,搜遍美图、艳图和酷图 >>http://image.yisou.com >>1G就是1000兆,雅虎电邮自助扩容! >>http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ >>_______________________________________________ >>python-chinese list >>python-chinese at lists.python.cn >>http://python.cn/mailman/listinfo/python-chinese >> >> >> >>--------------------------------- >>Do You Yahoo!? >>150万曲MP3疯狂搜,带您闯入音乐殿堂 >>美女明星应有尽有,搜遍美图、艳图和酷图 >>1G就是1000兆,雅虎电邮自助扩容! >>_______________________________________________ >>python-chinese list >>python-chinese at lists.python.cn >>http://python.cn/mailman/listinfo/python-chinese >> > >= = = = = = = = = = = = = = = = = = = = > > > 致 >礼! > > > limodou > chatme at 263.net > 2004-08-08 > >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese > = = = = = = = = = = = = = = = = = = = = 致 礼! Dreamingk(天成) dreamingk at tom.com 2004-08-08
2004年08月09日 星期一 10:19
我的理解: 这里的问题不仅仅是引用这么简单,其实这是普遍的编译器(解释器也应该如此)针对性能的一种优化,具体分析如下: 编译器/解释器为了节约系统资源以及提高本身的效率,面对常量值和变量值会区别对待: 1、当解释器看到两个相同值的常量变量的时候,他们不会申请新的内存,只是增加第一个变量的地址引用数,所以你看到初始的a和b是相同的地址;但如果你要改变a或b的值以后,a和b的引用地址将不再相同,因为解释器会为修改的变量重新申请内存并修改相应的地址引用。 2、当解释器遇到的是可变变量的时候,它认为用户会随时改变变量值,所以使用的是不同的地址。 在Python中,字符串和元组是属于常量变量,他们符合第一种情况;而序列属于可变变量,符合第二种情况。 验证如下: >>> a = "time" >>> b = "time" >>> id(a) 16636288 >>> id(b) 16636288 >>> a += "s" >>> id(a) 20165312 >>> id(b) 16636288 >>> m = ("time") >>> n = ("time") >>> id(m) 16636288 >>> id(n) 16636288 >>> s = ["time"] >>> t = ["time"] >>> id(s) 20361424 >>> id(t) 20515760 >>> 请指正!!! ----- Original Message ----- From: zhou hunter To: python-chinese at lists.python.cn Sent: Sunday, August 08, 2004 7:49 AM Subject: [python-chinese] 关于相同列表与字符串的id值问题 wish you a good day: 在整理笔记中有一个问题,举例子如下: >>> a="time" >>> b="time" >>> id(a) 12616688 >>> id(b) 12616688#id值可以看出a,b指向且都指向“time" >>> a=['time'] >>> b=['time'] >>> id(a) 15300640 >>> id(b) 15300680#可以看除a,b 指向了 “【"time"】”但两个time却不同。 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) 谢谢 zhou_hunter ------------------------------------------------------------------------------ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容! ------------------------------------------------------------------------------ _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040809/851d66a8/attachment.htm
2004年08月09日 星期一 10:24
这种说法我觉得更能让人理解。 但是,我觉得两种说法都有道理。 事实上我个人认为,只要知道大概的过程,和具体的结果。 哪种原因倒不是那么重要。 --- Dirk Ye <mailing at wandy.cn> 的正文: > 我的理解: > > > 这里的问题不仅仅是引用这么简单,其实这是普遍的编译器(解释器也应该如此)针对性能的一种优化,具体分析如下: > > 编译器/解释器为了节约系统资源以及提高本身的效率,面对常量值和变量值会区别对待: > > > 1、当解释器看到两个相同值的常量变量的时候,他们不会申请新的内存,只是增加第一个变量的地址引用数,所以你看到初始的a和b是相同的地址;但如果你要改变a或b的值以后,a和b的引用地址将不再相同,因为解释器会为修改的变量重新申请内存并修改相应的地址引用。 > > 2、当解释器遇到的是可变变量的时候,它认为用户会随时改变变量值,所以使用的是不同的地址。 > > > 在Python中,字符串和元组是属于常量变量,他们符合第一种情况;而序列属于可变变量,符合第二种情况。 > > 验证如下: > > > >>> a = "time" > >>> b = "time" > >>> id(a) > 16636288 > >>> id(b) > 16636288 > >>> a += "s" > >>> id(a) > 20165312 > >>> id(b) > 16636288 > >>> m = ("time") > >>> n = ("time") > >>> id(m) > 16636288 > >>> id(n) > 16636288 > >>> s = ["time"] > >>> t = ["time"] > >>> id(s) > 20361424 > >>> id(t) > 20515760 > >>> > > > 请指正!!! > > > > > ----- Original Message ----- > From: zhou hunter > To: python-chinese at lists.python.cn > Sent: Sunday, August 08, 2004 7:49 AM > Subject: [python-chinese] > 关于相同列表与字符串的id值问题 > > > wish you a good day: > 在整理笔记中有一个问题,举例子如下: > >>> a="time" > >>> b="time" > >>> id(a) > 12616688 > >>> id(b) > 12616688#id值可以看出a,b指向且都指向“time" > >>> a=['time'] > >>> b=['time'] > >>> id(a) > 15300640 > >>> id(b) > 15300680#可以看除a,b 指向了 > “【"time"】”但两个time却不同。 > > 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 > > 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 > > 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同?(我正在搜索这些资料,希望可以找到) > > 谢谢 > zhou_hunter > > > > > ------------------------------------------------------------------------------ > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容! > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
Zeuux © 2024
京ICP备05028076号