07 2013 档案

Python 新手常犯错误(第二部分)
摘要:转发自:http://blog.jobbole.com/43826/在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言。渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所以我决定跟来跟大家分享我的建议。这个系列的每个部分都会关注不同的常见错误,描述如何产生这种错误的,并且提供解决的方法。本文是第二部分。作用域在这篇文章里,我们来关注作用域在Python被误用的地方。通常,当我们定义了一个全局变量(好吧,我这样说是因为讲解的需要——全局变量是不好的),我们用一个函数访问它们是能被Python理解的:123bar = 42def foo():print bar在这里,我 阅读全文

posted @ 2013-07-22 20:49 frydsh 阅读(1349) 评论(0) 推荐(1)

在Python中,令values=[0,1,2];values[1]=values,为何结果是[0,[...],2]?
摘要:转载自:http://www.zhihu.com/question/21000872/answer/16856382>>> values = [0, 1, 2]>>> values[1] = values>>> values[0, [...], 2]我预想应当是[0, [0, 1, 2], 2]为何要赋值无限次?Python 没有赋值,只有引用。你这样相当于创建了一个引用自身的结构,所以导致了无限循环。为了理解这个问题,有个基本概念需要搞清楚。Python 没有「变量」,我们平时所说的变量其实只是「标签」。执行values = [0, 1, 阅读全文

posted @ 2013-07-20 12:08 frydsh 阅读(2058) 评论(0) 推荐(1)

Python的类实例属性访问规则
摘要:一般来说,在Python中,类实例属性的访问规则算是比较直观的。 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此。 在这里,我们需要明白以下几个地方: 1.Python是一门动态语言,任何实体都可以动态地添加或删除属性。 2.一个类定义了一个作用域。 3.类实例也引入了一个作用域,这与相应类定义的作用域不同。 4.在类实例中查找属性的时候,首先在实例自己的作用域中查找,如果没有找到,则再在类定义的作用域中查找。 5.在对类实例属性进行赋值的时候,实际上会在类实例定义的作用域中添加一个属性(如果还不存在的话),并不会影响到相应类... 阅读全文

posted @ 2013-07-18 01:04 frydsh 阅读(6469) 评论(4) 推荐(0)

Python 新手常犯错误(第一部分)
摘要:转载自:http://blog.jobbole.com/42706/在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言。渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所以我决定跟来跟大家分享我的建议。这个系列的每个部分都会关注不同的常见错误,描述如何产生这种错误的,并且提供解决的方法。用一个可变的值作为默认值这是一个绝对值得放在第一个来说的问题。不仅仅是因为产生这种BUG的原因很微妙,而且这种问题也很难检查出来。思考一下下面的代码片段:def foo(numbers=[]): numbers.append(9) print numbers在这里,我们定... 阅读全文

posted @ 2013-07-09 23:02 frydsh 阅读(938) 评论(3) 推荐(2)

导航