Other articles


  1. [翻译] 探索 Python 代码对象

    原文:Exploring Python Code Objects

    由于受到 David BeazleyPyCon 上的 Keynote 的启发,近来我四处学习与 Python 代码对象 (code object) 相关的内容。我并没有什么特别的利器,也没有专门的任务去解决 (至今为止?),所以请将这篇文章看做一些也许有趣的记录和随笔 (如果没意思的话,抱歉)。

    免责声明:这篇文章是关于 CPython 2.7 的,虽然其中的大部分对于其他的 CPython 版本应该也是正确的 (包括 3.x)。但我不保证它在 PyPy、Jython、IronPython 等实现上是正确和适用的。

    第0步:是什么?

    所以首先,代码对象是什么呢?许多人 (特别是仇视 Python 的人 ...

    read more

    There are comments.

  2. [翻译] Python 内部:可调用对象是如何工作的

    原文:Python internals: how callables work

    【这篇文章所描述的 Python 版本是 3.x,更确切地说,是 CPython 3.3 alpha。】

    在 Python 中,可调用对象 (callable) 的概念是十分基本的。当我们说什么东西是“可调用的”,马上可以联想到的显而易见的答案便是函数。无论是用户定义的函数 (你所编写的) 还是内置的函数 (经常是在 CPython 解析器内由 C 实现的),他们总是用来被调用的,不是么?

    当然,还有方法也可以调用,但他们仅仅是被限制在对象中的特殊函数而已,没什么有趣的地方。还有什么可以被调用呢?你可能知道,也可能不知道,只要一个对象所属的类定义了 __call__ 魔术方法,它也是可以被调用的。所以对象可以像函数那样使用。再深入思考一点,类也是可以被调用的 ...

    read more

    There are comments.

  3. 探秘 Linux 权限控制

    众所周知,Linux 的权限控制虽然很简单,但却十分严格和有效的。(和 Windows 复杂却没用的权限控制形成鲜明对比……)由于最近编写测评机,希望利用 Linux 的高安全性做运行级恶意代码防护,因此就顺带地研究了一下 Linux 的权限控制。经过这次探秘,我对 Linux 的权限有了更新的认识,确实是一个很强大的东西啊!

    由于本人的能力有限,文章中的不足和谬误也请大家多多指教!

    我想,稍微接触过一段时间 Linux 的人都会对 Linux 的权限有些许了解,其中最重要的莫过于——很多命令需要加 sudo 才能运行,而且我们也知道,sudo 几乎无所不能——不能删的就 sudo rm、不能复制 sudo cp、不能移动 sudo mv……(目前我仅发现在部分虚拟文件系统中 sudo 也没有权限做这些事情……)那么,sudo 究竟是何方神圣,Linux ...

    read more

    There are comments.

  4. 探索 Python 的变量、类型和引用

    我一开始为 Python 的强大和简洁所震撼,看了些 Python 的教程,学了不少东西。前面那些探索就以后再写吧……今天先讲讲今天知道的东西。

    在探索到 Python 函数的参数传递的时候,我不禁赞叹 Python 灵活的参数设计,但慢慢的,开始迷惑与传递参数的修改和返回。

    众所周知,在 C++ 中传递参数分为传值和传引用两种,但 Python 没有,那到底传进去的东西,修改一下,能不能传出来呢?这是一个很奇怪和让人费解的问题,不是么?在查阅了一些资料后,对 Python 关于变量、类型和引用的一些基本方式有了一些了解,进而基于这种理解并结合实验,了解了参数传递的奥妙。

    Python 的变量是没有类型的,这与以往看到的大部分语言都不一样。但 Python 却是区分类型的,那类型在哪里呢?事实是,类型是跟着内存中的对象走的。Python 的所有变量其实都是指向内存中的对象的一个指针,所有的变量都是!此外,对象还分两类 ...

    read more

    There are comments.

Page 1 / 1

social