- 浏览: 1292121 次
- 性别:
- 来自: 江苏
最新评论
-
honey_fansy:
的确,不要自己的支持就说完美支持,我的就不行,别说我的不是fi ...
无js实现text-overflow: ellipsis; 完美支持Firefox -
fanchengfei:
事件长微博,欢迎转发:http://weibo.com/332 ...
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator -
blued:
没有报错,但排版效果一点都没有 咋回事。请指教
python排版工具 -
szxiaoli:
耍人呀,效果在哪儿呀
滑动效果 -
accaolei:
这个能监到控子目录吗?,我测试了一下,发现子目录里的文件监控不 ...
windows监控目录改动
##1.如何还原函数的参数调用
##什么也不说了,copy and run
##有什么用,自己想象吧
def show_para(func):
func_id="%s.%s"%(func.__module__,func.__name__)
varnames=func.func_code.co_varnames
if func.func_defaults:
varnames_len=len(varnames)
defaults=[repr(i) for i in func.func_defaults]
def get_id(args,kwds):
paras=[repr(i) for i in args]
len_args=len(args)
pos=len_args-varnames_len
if kwds:
for i in varnames[len_args:]:
paras.append(
repr(kwds.get(i,defaults[pos]))
)
pos+=1
else:
paras.extend(defaults[pos:])
return "%s(%s)"%(func_id,",".join(paras))[-250:]
else:
def get_id(args,kwds):
paras=[repr(i) for i in args]
if kwds:
for i in varnames[len(args):]:
paras.append(
repr(kwds[i])
)
return "%s(%s)"%(func_id,",".join(paras))[-250:]
def _func(*args,**kwds):
print get_id(args,kwds)
print len(get_id(args,kwds))
return _func
@show_para
def xxx(a,b,c,d="张",e="沈",f="鹏",g=2):
pass
@show_para
def ooo(a,b,c):
pass
xxx(1,2,3,f=121)
ooo(1,2,3)
########################################################################
##2.元类与缓存
#coding:utf-8
##同样,copy and run
##不做解释,自己想象
from types import ClassType
class mc(object):
__cache={}
@staticmethod
def get(id):
r=mc.__cache.get(id,None)
print "mc.get\t%s = %s"%(id,r)
return r
@staticmethod
def set(id,value):
print "mc.set\t%s = %s"%(id,value)
mc.__cache[id]=value
@staticmethod
def delete(id):
print "mc.delete \t%s"%(id)
mc.__cache.pop(id)
class MetaMc(type):
"""
使用该元类的类
如果自定义__init__必须第一个参数必须是id
否则,生成的__init__第一个参数默认是id
"""
def __new__(cls,classname,bases,classdict):
class_id="%s.%s:"%(classdict['__module__'],classname)
def init_maker(init):
if init:
for i in bases:
if isinstance(i,MetaMc):
def __init__(self,id,*args,**kwds):
return init(self,id,*args,**kwds)
return __init__
def __init__(self,id,*args,**kwds):
self.__id=int(id)
self.__mc_id="%s%s"%(class_id,id)
self.__profile=mc.get(self.__mc_id) or {}
init(self,id,*args,**kwds)
else:
if bases:
if isinstance(bases[0],MetaMc):
return None
else:
def __init__(self,id,*args,**kwds):
self.__id=int(id)
self.__mc_id="%s%s"%(class_id,id)
self.__profile=mc.get(self.__mc_id) or {}
return bases[0].__init__(self,*args,**kwds)
else:
def __init__(self,id,*args,**kwds):
self.__id=int(id)
self.__mc_id="%s%s"%(class_id,id)
self.__profile=mc.get(self.__mc_id) or {}
return __init__
__init__=init_maker(classdict.get("__init__",None))
if __init__:
classdict["__init__"]=__init__
@property
def id(self):
return self.__id
classdict["id"]=id
if "__repr__" not in classdict:
def __repr__(self):
return self.__mc_id
classdict["__repr__"]=__repr__
if "__str__" not in classdict:
def __str__(self):
return self.__mc_id
classdict["__str__"]=__str__
def mc_clean(self):
self.__profile={}
mc.delete(self.__mc_id)
classdict["mc_clean"]=mc_clean
def get_maker(k,v):
def get(self):
profile=self.__profile
if k in profile:
result=profile[k]
else:
result=v.get.im_func(self)
profile[k]=result
mc.set(self.__mc_id,profile)
self.__profile=profile
return result
return get
def set_maker(k,v):
def set(self,value):
result=v.set.im_func(self,value)
self.__profile[k]=value
mc.set(self.__mc_id,self.__profile)
return result
return set
for k,v in classdict.iteritems():
if isinstance(v,ClassType):
has_get=hasattr(v,"get")
has_set=hasattr(v,"set")
if has_set and has_get:
classdict[k]=property(get_maker(k,v),set_maker(k,v))
elif has_get:
classdict[k]=property(get_maker(k,v))
elif has_set:
classdict[k]=property(fset=set_maker(k,v))
return type.__new__(cls, classname, bases, classdict)
class db:
name=1
amount=0
class A:
__metaclass__=MetaMc
class name:
def get(self):
return db.name
def set(self,value):
db.name=value
class amount:
def get(self):
return "amount %s"%db.amount
def set(self,value):
pass
class B(A):
pass
b=B(1)
print b.name
print b.name
print b.name
b.name+=1
print b.name
print b.name
b.mc_clean()
print b.name
print b.id
print type(b.id)
发表评论
-
关于"Google限制Python"事件我的看法
2009-11-17 15:11 8283本来做一个勤勤恳恳的 ... -
python排版工具
2009-10-15 14:22 3450http://pypi.python.org/pypi/pyt ... -
Fast Asynchronous Python Web Server (Fapws is short)
2009-08-15 12:12 1818http://github.com/william-os4y/ ... -
python奇技淫巧
2009-07-23 22:27 2461http://wiki.python.org/moin/By ... -
跨平台 获取系统信息的python库 http://support.hyperic.com/disp
2009-06-12 11:49 3599The Sigar API provides a portab ... -
频繁集统计 python 封装
2009-05-29 15:49 2625封装的是附件这篇paper的count 因为对比发现这个的综合 ... -
libsvm (python封装) 学习笔记 1
2009-05-19 14:28 42002009-05-19 14:10:38 #!/usr/bin ... -
lcs.py 最长公共子串算法
2009-05-05 15:50 2930感觉用来匹配相似文件比最短编辑距离更靠谱,最短编辑应该是用来纠 ... -
lrucache.py 最近最少使用算法
2009-05-04 13:23 2877lrucache.py 最近最少使用算法 2009-05-04 ... -
史上最快 异步消息队列zeromq 简介
2009-04-30 21:40 27227是的,我喜欢Z开头的东西. http://www.zer ... -
相似单词
2009-03-18 00:54 1738给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词 ... -
is_cn_char
2009-03-14 13:39 1307unicode码 def is_cn_char(i): ... -
写一个python的urldecode
2009-03-03 10:57 5084from urllib import unquote def ... -
今天才发现python的sort有个key参数,我好圡...
2009-02-28 20:59 3055>>> a=range(10) >& ... -
发一个山寨版python的Orm
2009-02-24 23:49 2211发一个山寨版的Orm 大概用法见 http://docs. ... -
pyrex学习笔记
2009-02-24 03:36 16810. easy_install pyrex 1.写pyrex ... -
python的一个有趣的细节
2009-02-24 02:00 1339python3.0一个有趣的细节 2009-02-24 01: ... -
python备玩候选者
2009-02-24 00:34 1676* 张沈鹏 推荐网址当然要有一个部署的东西 Exs ... -
python读取mp3 ID3信息
2009-02-18 16:57 2597pyid3不好用,常常有不认识的. mutagen不错,不过 ... -
又写了一个python的route模块
2009-01-14 01:18 2073是的 我很无聊
相关推荐
Python-trick,上传的事pdf文档
python_trick_中文版.pdf
YOLOv5|YOLOv7|YOLOv8改各种IoU损失函数:YOLOv8涨点Trick,改进添加SIoU损失函数、EIoU损失函数、GIoU损失函数、α-IoU损失函数-CSDN博客.mhtml
这使我可以调用简单的方法,例如killing_intervention()并传递上述任何一个参数,但不能同时实现这两个方法的覆盖率和开始时间。 如果您在命令行上运行脚本,它将仅创建一堆这些字典并将其写入控制台。 test_...
Trick
Python 提示和技巧 克隆存储库 git clone https://github.com/plasmashadow/py-trick-book.git 我假设您安装了 ipython 导航到目录并执行 ipython notebook 笔记: 退出间谍活动并自己阅读 或者 保持冷静,加入...
dev分支是Trick插件的主要开发分支。 从dev克隆以创建功能/主题分支是首选方法。 为插件做贡献 插件源代码托管在。 新功能建议和错误修复应作为提交。 在GitHub上克隆存储库,准备对本地存储库的更改,然后提交拉取...
测试trick: 分块测试,把图像切分为512x512的小块进行预测,保持和训练一致 交错分块测试,测试图像增加镜像padding,且分块时边缘包含重复部分,每次预测仅保留每块预测结果的中心部分,这么做的原因是图像边缘...
特技袋各种Ruby类,模块和方法,以简化和增强您的代码。安装将此行添加到您的应用程序的Gemfile中: gem 'trick_bag'然后执行: $ bundle或将其自己安装为: $ gem install trick_bag用法理解用法的最佳方法是查看a...
爬取饿了么首页,基于Python的scrapy实现爬取饿了么首页信息,代码有一定缺陷,敬请大佬指点萌新
基于python实现手写痕迹文档图像摩尔纹消除源码+项目运行说明.zip 二、数据分析 **数据划分**:使用1000张做为训练集,81张作为验证集。 官方提供了训练集1081对,测试集A、B各200张。包含以下几个特征: 1.图像...
Hattrick球场上座率概算 Hattrick球场上座率概算
Condensing thousands of pages of Python online documentation into a compact 319-page softcover, Beazley and his editors used the old-college trick (often performed in reverse) of dickering with the ...
机器学习中为什么需要 Kernel Trick 以及 Kernel Trick 的证明。
书 python-tricks-buffet-awesome-features pdf格式和epub格式
arp_trick.tar.gz
此函数将标量或矩阵中的小数点更改为“&”以允许使用此技术。 为获得最佳效果,请与本网站上提供的 matrix2latex.m 结合使用。 用法: % latex_trick(数字,格式) % 在哪里: % number 是矩阵或标量,并且% ...
Trick 实战小技巧,帮你更Pythonic!!!!!!!!!!!
linux shell trick
第1章 注入类 课时1:SQL注入原理与利用 19'40 课时2:SQL注入宽字节原理与利用42'08 课时3:SQL Union注入原理与利用01'01'54 课时4:SQL注入布尔注入50'02 课时5:报错注入原理与利用29'27 课时6:CTF SQL...