02 2018 档案
摘要:以下部分引用自https://www.cnblogs.com/Anker/p/3271773.html 首先说明,每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。 但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination
阅读全文
摘要:以下为转载https://www.cnblogs.com/DswCnblog/p/6126588.html with。。as。。一个使用场景是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。 普通的文件处理如下: 由于文件读写时都有可能产生IOError,一旦出错,后面的f.c
阅读全文
摘要:假设某程序在/root/a/aa.py,在shell,当前pwd为/root,输入./a/aa.py运行py程序,则爱程序的工作目录是/root.而不是程序所在文件夹,os.getcwd()就是查看工作目录的方法。 工作目录有什么意义?目前所知,如果程序中有操作文件的代码,比如open(文件名,'r
阅读全文
摘要:什么叫内置模块?我的理解是:python程序是靠解释器解释运行的,所以要运行py程序需要先运行解释器程序,而解释器程序里的导入的模块就是内置模块
阅读全文
摘要:1生成器是特殊的迭代器, 2爹带起有个特点是能调用next和iter方法。(py2和py3中略有不同,py2的方法名是__iter__和next(),而py3中的方法名是__iter__和__next__) 3含有iter方法的是可迭代对象,并且该iter方法会返回iter和next方法均具备的迭代
阅读全文
摘要:在py2中,如下代码是错的 而在py3中,代码确是正确的 为什么会出现这种情况? 在py2中,print是语句(statement),而在py3中,print是函数。 等号两边的,可以是表达式,可以是函数,表达式有value,函数有返回值。但等号两边不可以为语句。语法错误。以下为相同的语法错误: a
阅读全文
摘要:转载自编程派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 所以,根据以上特点,不可变对象不可能产生循
阅读全文