Python
开发者说
专注于Linux智能设备与云
展开
-
python类方法和静态方法
python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马?python中实现静态方法和类方法都是依赖于python的修饰器来实现的。class MyClass: def method(self): print("method") @staticmethod def staticMethod原创 2012-02-01 13:45:50 · 4211 阅读 · 0 评论 -
python修饰器
在《python类方法和静态方法》中提到了修饰器,修饰器和java中的注解看起来差不多,他到底是什么东西呢?先看一下一个最简单的修饰器实现:def R(arg): print("修饰一下") return f它看起来就是设计模式中提到的修饰设计模式,在原有的基础上添加自己的修式。不过python中的实现是返回了一个函数。这感觉有些闭包的概念,不原创 2012-02-02 10:49:10 · 4009 阅读 · 0 评论 -
python中的定义类属性和对像属性
python中变量是没有类型的可以绑定任意类型,但是在语法上不能声明变量。那我们怎麽来声名一个变量呢?f=None这样我们给着个变量绑定了以各None类型,我们随时可用重新绑定其它类型。这样我们起到了预先声名变量的效果。类中如何去定义类的属性和对像属性呢?如果对OO有所了解的话,就应该知道类属性属于类整体而对像属性属于具体的对像实例(查看gtk对像系统的实现会进一步理解原创 2012-02-01 13:58:11 · 5719 阅读 · 0 评论 -
Django开发笔记
错误: No module named 模块名称找不到模块,需要将模块添加到python的搜索目录中。方法一、在运行时添加参数--pythonpath="路径"方法二、将路径添加到path中。在settings.py中增加sys.path.insert(0,"path")方法三、安装模块到python的dist-packages(有的系统是site-packages)文件夹中错原创 2012-06-04 23:52:02 · 5389 阅读 · 0 评论 -
python列表的快速操作
在C中修改容器中的每一个节点的内容我们的办法只有一个,就是遍历节点并对节点进行操作:for (int i = 0; i < len; ++i) { con[i] *= 2;}我们C++11一些(m是标准容器):for (auto i : m) { i *= 2;}或者foreach(m.begin(), m.end(), [](x){x*=2}); 很原创 2012-09-04 21:41:41 · 2414 阅读 · 0 评论 -
python格式化字符串中存在{}的处理
python新的字符串格式化是str的format方法,而他对关键字替代的标识符是{}“str:{0}”.format("STR")"str:{name}".format(name = "STR")早期的python版本的格式化字符串使用的是类似C的转移字符,所以使用\标识出来就可以了。"str:%s" % ("STR")"str:%(name)" % {name : "STR"}原创 2013-01-06 16:42:17 · 3410 阅读 · 0 评论 -
django模板
最近研究openstack出现了一些问题,需要自己来解决,openstack的是使用python来实现的,他的dashboard就是一个django的project。所以重新拾起django看了一下,发现有些东西已经遗忘掉了,重新看了一下,并记录,以防再次遗忘。django模板把指令放在{% %}中,{{}}中的是在python代码中的变量。extends 与 include分别是模板的继原创 2013-02-03 13:29:11 · 7069 阅读 · 0 评论 -
python读文件时UnicodeDecodeError的处理
python中通过open打开文件后,当文件中有中文fd.readline()时会抛出UnicodeDecodeError的异常。基本上可以确定是读入文件的编码问题。因为读入的文件是用VS来写的C++的代码,而vs默认保存的编码是gb2312。当将文件编码转换成UTF-8时正常。根本解决方法是将那些VS写的代码统一成UTF-8的编码,但是这部分代码不是我来维护,并且代码还在增加,其他开发人员通过V原创 2013-02-25 13:52:23 · 10491 阅读 · 0 评论