摘要:
转载自编程派http://codingpy.com/article/why-print-became-a-function-in-python-3/ 原作者:Brett Cannon 原文链接:http://www.snarky.ca/why-print-became-a-function-in-p 阅读全文
摘要:
1,关于break break是终止最近的循环。 2,在py2中,range函数返回一个列表 3,enumerate() 利用enumerate()函数,可以在每次循环中同时得到下标和元素: S = 'abcdefghijk' for (index,char) in enumerate(S): pr 阅读全文
摘要:
python解释器在碰到+号运算符时,会调用加号前面的对象的__add__方法 同理,-对应__sub__方法 阅读全文
摘要:
class属性类似于以上例子中的__metaclass__ 实例.__class__等价于实例的所属类 回过头来补充说明。 继承type类的类就是元类,而我们新创建一个类,__metaclass__可以指定这个类是哪个元类的对象,如果不指定,则默认是type类的对象 更新: 类与类的类,跟实例与类, 阅读全文
摘要:
可参考vamei的博客和https://www.jianshu.com/p/1e375fb40506 阅读全文
摘要:
现在说明一下标记清除:代码运行到上面这块了,此时,我们的本意是想清除掉c和d和e所引用的对象,而保留a和b所引用的对象。但是c和d所引用对象的引用计数都是非零,原来的简单的方法只能清除掉e,c和d所引用对象目前还在内存中。 假设,此时我们预先设定的周期时间到了,此时该标记清除大显身手了。他的任务就是 阅读全文
摘要:
由于循环引用的存在,我们在删除了a跟b之后,引用计数是1,这样,现有的垃圾回收机制是永远不可能把她们删除了。他们将永远存在于内存中。 我们当然不能对这种情况置之不理,于是,我们又添加了两种新的回收机制:标记清理,分代回收。这两种机制组合起来的效果笼统的说,我们就是设定了一个周期性任务,周期一到,任务 阅读全文
摘要:
1 a = [1, 2] 2 b = [a, a] 3 del a 4 print b#思考会不会打印[[1,2],[1,2]] 阅读全文
摘要:
任何对象,当引用计数变为0的时候都会被立刻清除。 而对象,分为可变对象,和不可变对象,不可变对象有个特点:其内部不包含指向其他对象的引用。而可变对象,比如列表[1,2],他内部包含两个整数对象的引用。也可以说,列表对象[1,2]引用了整数对象1和整数对象2 所以,根据以上特点,不可变对象不可能产生循 阅读全文
摘要:
d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 访问字典中的键 dict1 = { 'abc': 456 } print dict1['abc'] 清空字典所有条目,删除字典中的键 阅读全文