摘要:
Python 程序员不去依赖语言特性去封装数据,而是通过遵循一定的属性和方法命名规约来达到这个效果。第一个约定是任何以单下划线 _ 开头的名字都应该是内部实现。比如: Python 并不会真的阻止别人访问内部名称。但是如果你这么做肯定是不好的,可能会导致脆弱的代码。同时还要注意到,使用下划线开头的约 阅读全文
摘要:
Python语言是支持函数式编程的,我们可以在一个函数的函数体中定义另一个完整的函数,甚至返回这个函数.在函数内部定义的函数和外部定义的函数是相同的,唯一的区别就是在函数内部定义的函数是不能被外部访问的. 下面的一段代码定义了两个函数f() 和 g(),在函数f()中把g()作为返回值返回,这里的g 阅读全文
摘要:
假如test.py用C语言来实现,会是下面这个样子: Python虚拟机的原理就是模拟上述行为。当发生函数调用时,创建新的栈帧,对应Python的实现就是PyFrameObject对象。 7.1 PyFrameObject 那么对应Python的运行时栈就是这样子: 7.2 执行指令 执行test. 阅读全文
摘要:
所谓展开嵌套序列就是类似于[1,2,3,[3,4,[5,6]],7],这样的序列展开成[1,2,3,3,4,5,6,7]。 一、如果最外层列表里边都是小的列表,没有不可迭代的元素,可以这样做: 或者如果不允许使用其他库可以这样代替: 但是这样一来就只能是被list了 最初的可以识别任何可迭代的 二、 阅读全文
摘要:
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为“字节”。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为“计算 阅读全文
摘要:
先上个urllib的函数说明。(注意在Python 2 中有 urlib、 urlparse、 urllib2,以及其他内容。在 Python 3 中,所有这些相关模块都整合进了一个名为 urllib 的单一包中。 urlib 和 urlib2 中的内容整合进了 urlib.request模块中, 阅读全文
摘要:
说起来扩展,基本就是在其他语言里调用C或者C++,因为这两个是效率最高的代码,而其他大多都是另外又封装的,所以效率较低。 当出现语言本身无法解决的效率问题时,就需要扩展调用其他代码。 因为我自己会C++,所以我就只记录调用C++。 其中调用DLL最为简单,所以在此自己mark一下。 正文开始: C+ 阅读全文
摘要:
上述代码就是一个经典的生成器,也就是函数里边加入了yield。(在python2中 是a.next(),而在3中,则是next(a)这种调用方法。) 注意生成器里边是不会return回值的,如果你写了return只会是输出到边界时候出现的错误会返回你要return的值。 还有一个需要注意的是send 阅读全文
摘要:
特别注意第七行,这个不是注释,是必须的,是声明你接下来的函数声明要是用哪个装饰器。 上述代码会输出 call now() 2015-3-25 可以看出其实就是用now()作为log的输入,等于是为now函数外层增加了一个封装,便于输出now中没有定义的一些属性。 阅读全文
摘要:
COM编程也就是去调用WINDOWs自己所携带的应用,例如office(excel,word,ppt)等等。而python中使用就需要调用win32模块。 这个模块名是pypiwin32,直接用pip安装即可。 11行就是调用COM的代码,调用了excel应用,之后回去句柄,然后对其进行写入操作。之 阅读全文