Python 内层名字空间访问外层名字空间中的变量

某天,一位新来的同事问我,在 Python 的函数中,怎么定义一个像 C 语言中的 static 变量。就像这样: void foo(void) { static int a = 0; ... } 已经抛弃 C 好长时间了,现在工作和业余都在使用 Python,也习惯用 Python 去思考。被问到这个问题时,我一时还真不知道怎么回答,因为在使用 Python 的这么长时间里,我还真没有遇到过这样的需求。当然,Python 自身也不直接支持类似的语法,所以也不会这样去思考。 实际上,他是想要在函数中保持一个变量的状态。经过短暂的思考,我回答他,你可以定义一个全局变量...

阅读更多

Python 解码 Unicode 转义字符串

其实,这里要讨论的内容是针对 Python2 的,实际上也是 Python2 中让人头疼的编码问题,而 Python3 则好处理得多。 先来看看例子: >>> s = "我正在学Python" >>> s '\xe6\x88\x91\xe6\xad\xa3\xe5\x9c\xa8\xe5\xad\xa6Python' >>> s_u = u"我正在学Python" >>> s_u u'\u6211\u6b63\u5728\u5b66Python' >>> print s 我正在学Python &g...

阅读更多

受限的 bash -- rbash

rbash(restricted bash),即受限制的 bash。其可以用作中转服务器,或者仅使用 ssh 来访问网页等等。 实际上 rbash 只是 bash 的一个软连接: $ ls -l `which rbash` lrwxrwxrwx 1 root root 4 Oct 8 2014 /bin/rbash -> bash 如果 bash 以 rbash 为程序名启动或者命令行参数有 -r 选项,则启动的这个 shell 会在某些功能上受限制: 通过 cd 来改变工作目录 设置或取消环境变量: SHELL, PATH, ENV, BASH_ENV 命令名中不能包...

阅读更多

后半生的魔法师

【导读】 除了朱自清的《背影》,我觉得这篇是写爸爸最好的文章。初读的时候是在高中,当时喜欢买《读者》这本杂志,有一期上刊登了这篇文章。在后来的差不多十年里,陆陆续续也读过好几遍,几乎每一次都会流泪。作者以一种特殊的手笔来描写爸爸,回忆着过去的点滴,又与现在年过半百的爸爸进行对比,最后疾呼“爸爸,不要老”。特别喜欢这篇文章,今天再翻出来读一遍,依然泪下。 文/落落 [1] 那天我请爸爸去看电影。地点定在港汇五楼。这是一桩很小的事。发生在某个时间。天光平淡,车流缓行,远远的有工地打桩的声音。“镗”“镗”“镗”。好似上海的心跳声。 早场,赶到的时候电影已经开始。整个影院里加上我和爸...

阅读更多

值得的东西是值得坚持的

于2月18日夜 有些人,曾经比我执着。而人终究都要对面现实。 我曾经是理智的,后来却对某些事变得执着。毕竟,值得的东西是值得坚持的。 从小就没有少吃苦,但我的命却很好,每次的转折都不偏不倚,恰巧在合适的位置。人的每一段经历都会为后来的日子做铺垫,当然,当中酸甜苦辣都会尝尽。 所以,我是感性的,受着命运自身的牵引。我痛苦,挣扎,烦恼,最终还是确定不了选择的正确性。那就随心走吧。 这么多年过去了,我倒是觉得,人生就是一场一场的豪赌,未来太多的不确定性,不一定会赢,也不一定就输了。输了就输了吧,我的人生也没有少输,而正是这些输输赢赢让我发现我的生活变得越来越好。因为每一次输每一次...

阅读更多

Windows 下 git 的安装与配置

好久没有接触 Windows 环境,由于项目需要,需要在 Windows 下做开发,不得不配置下 Windows 的开发环境,那么 Git 是必装的。安装步骤其实很简单,只是感觉好久没有写博客了,这里随便记录下。 安装 Git 客户端 下载 git for windows,执行正常的安装步骤。一般我选择 Git 自带的 Git Bash 命令行工具,这样有很多 GNU 工具可以用。 安装步骤不明可以参考:http://wuzhuti.cn/2385.html. 创建 SSH Key 安装好后,打开 Git Bash 工具,执行以下命令: ssh-keygen -t rsa ...

阅读更多

是否晴天,已不重要

本文选自网络   许多看似拥有的,其实未必真的拥有。那些看似离去的,其实未必真的离开。倘若因果真有定数,有朝一日,该忘记的都要忘记,该重逢的还会重逢。只不过岁月乱云飞渡,那时候或许已经换过另一种方式,另一份心境。而信步寻梦的人,在拥挤的尘路上相遇,也许陌生,也许熟悉;也许相依,也许背离。   终于明白,有些路,只能一个人走。那些邀约好同行的人,一起相伴雨季,走过年华,但有一天终究会在某个渡口离散。红尘陌上,独自行走,绿萝拂过衣襟,青云打湿诺言。山和水可以两两相忘,日与月可以毫无瓜葛。那时候,只一个人的浮世清欢,一个人的细水长流。   人的一生都在演绎一幕又一幕的戏,或真或假,或...

阅读更多

Python 面向对象编程的一些知识点总结

类与实例 类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息。 类、属性和方法命名规范 类名通常由大写字母打头。这是标准惯例,可以帮助你识别类,特别是在实例化过程中(有时看起来像函数调用)。还有,数据属性(变量或常量)听起来应当是数据值的名字,方法名应当指出对应对象或值的行为。 另一种表达方式是:数据值应该使用名词作为名字,方法使用谓词(动词加对象)。数据项是操作的对象、方法应当表明程序员想要在对象进行什么操作。 在定义的类中,大致遵循这样的方针,数据值像 “name”, “phone” 和 “email”,行为如 “updatePh...

阅读更多