随笔分类 -  深入Python

摘要:RestrictedPython 设计理念 Python 是一种图灵完备的编程语言。在 Web 上下文中为用户提供 Python 接口是一种潜在的安全风险。Web 框架和内容管理系统 (CMS) 希望通过 Web (TTW) 为其用户提供尽可能多的可扩展性,这也意味着用户有权通过 Python 脚本 阅读全文
posted @ 2021-07-19 20:13 鸪斑兔 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: utf-8 -*-import osimport subprocessimport signalimport pwdimport sysclass MockLogger(object): '''模拟日志类。方便单元测试。''' def __init__(sel... 阅读全文
posted @ 2014-09-17 09:54 鸪斑兔 阅读(5021) 评论(1) 推荐(1) 编辑
摘要:# -*- coding: utf-8 -*-import xml.dom.minidomELEMENT_NODE = xml.dom.Node.ELEMENT_NODEclass SimpleXmlGetter(object): def __init__(self, data): ... 阅读全文
posted @ 2014-04-25 09:12 鸪斑兔 阅读(1520) 评论(0) 推荐(0) 编辑
摘要:Python中所有加载到内存的模块都放在sys.modules。当import一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。如果没有加载则从sys.path目录中按照模块名称查找模块文件,模块文件可以是py、pyc、pyd,找到后将模块载入内存,并加入到sys.modules中,并将名称导入到当前的Local名字空间。详细信息参考:http://www.cnblogs.com/qq78292959/archive/2013/05/17/3083961.html扩展知识:Python在import其它模块 阅读全文
posted @ 2014-02-08 14:43 鸪斑兔 阅读(11491) 评论(0) 推荐(1) 编辑
摘要:class A(object): def __init__(self): print "init" def __new__(cls,*args, **kwargs): print "new %s"%cls return object.__new__(cls, *args, **kwargs)A()输出:new init知识点:继承自object的新式类才有__new____new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__ne... 阅读全文
posted @ 2014-02-08 12:01 鸪斑兔 阅读(39524) 评论(0) 推荐(5) 编辑
摘要:Python没有真正的私有变量。内部实现上,是将私有变量进程了转化,规则是:_下面的小技巧可以获取私有变量:1 class Test(object):2 def __init__(self):3 self.__zzz=1114 5 if __name__ == '__main__':6 a = Test()7 print a._Test__zzz同样,通过a._Test__zzz=222的方式,可以修改私有变量的值。通过dir(Test)和dir(a)可以看到类属性和其实例属性之间的区别:print dir(Test)print dir(a)['__c... 阅读全文
posted @ 2014-01-29 16:21 鸪斑兔 阅读(12982) 评论(0) 推荐(1) 编辑
摘要:#coding:utf-8def new(cls, *args, **kwargs): ''' 若cls是函数,则调用之;若cls是类型,则生成一个cls类型的对象 ''' return cls(*args, **kwargs)class Number(object): passclass IntegralNumber(int, Number): ''' 整数类,自定义了一个toInt函数,可以把自己转换为一个int型。 折腾了半天,x=IntegralNumber(3) 最终就是x=3 ''' d 阅读全文
posted @ 2013-02-07 11:17 鸪斑兔 阅读(1864) 评论(0) 推荐(0) 编辑
摘要:#!/usr/bin/env python#coding:utf-8class Borg(object): _share_state = {} def __init__ (self): ''' 将__dict__和_share_state指向了同一个地址 这样会使_share_state的内容始终保持与__dict__同步 由于_share_state是类变量,最终就可以实现多个实例的__dict__保持同步的效果 ''' self.__dict__ = self._share_stateclass... 阅读全文
posted @ 2013-02-06 19:29 鸪斑兔 阅读(383) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示