- 浏览: 1290121 次
- 性别:
- 来自: 江苏
最新评论
-
honey_fansy:
的确,不要自己的支持就说完美支持,我的就不行,别说我的不是fi ...
无js实现text-overflow: ellipsis; 完美支持Firefox -
fanchengfei:
事件长微博,欢迎转发:http://weibo.com/332 ...
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator -
blued:
没有报错,但排版效果一点都没有 咋回事。请指教
python排版工具 -
szxiaoli:
耍人呀,效果在哪儿呀
滑动效果 -
accaolei:
这个能监到控子目录吗?,我测试了一下,发现子目录里的文件监控不 ...
windows监控目录改动
写通用的回复类, 原本打算做成一个独立的基类
class ReplyBase(object):
_REPLY_REALTED_CLS = None
_REPLY_CLS = None
mc_reply_id_by_rid = McLimitA(
"ReplyIdBy%sId:%%s"%_REPLY_RCLS.Meta.table.title(),
128
)
...
写下来以后, 忽然想到
"ReplyIdBy%sId:%%s"%_REPLY_RCLS.Meta.table.title(),
在基类定义的时候就被确定了, 不好搞
这样下去就只有用Meta Class
不过正如 洪教授 所言 ( http://www.infoq.com/cn/interviews/douban-hqn )
Meta Class 是种黑魔法, 正派人士都很畏惧它.
虽然有部YY小说, 标题叫做"魔本是道", 不过这也就是纯属意淫, 估计连本实体书都没有.
正如我昨天说过的 做人需要一点演技( http://www.douban.com/note/101804926/ )
写代码也不能太暴露内心的邪恶念头.
decorator, 正如其名, 装饰器, "装"是核心词, 是我圣教中人, 行走江湖必备的技能.
好吧, 过去我常常以"张教主"自诩, 不过一晃也有很多年没进行官方的正式声明了.
江湖儿女江湖老,昏昏灯火忆平生.
言归正传, 先来做一个小实验, 用函数动态添加一个基类
class C(object):
def x(self):
return self.__class__
class B(object):
pass
class A(B):
pass
def main():
print "A.__bases__ before", A.__bases__
A.__bases__ = tuple(list(A.__bases__)+[C, ])
print "A.__bases__ after", A.__bases__
print "A().x()", A().x()
输出是
A.__bases__ before (<class '__main__.B'>,)
A.__bases__ after (<class '__main__.B'>, <class '__main__.C'>)
A().x() <class '__main__.A'>
人体试验很成功, 我很开心
当然, 我这里有些细节懒得交代了, 我是工科生, 不是理科生, 我只追求可以work的solution, 不考究背后theory. 何况我本科文凭中还有"医学"两个字符.
医学是只看结果不问过程的.
不过, 如果你遇到什么问题, 可以从这里开始探索 http://blog.donews.com/limodou/archive/2005/01/06/227676.aspx
说了这么多, 还是直接上代码吧, 代码是很无趣. 就像武功秘籍一样.
找秘籍的人永远很多, 炼成的永远很少.
这还是精简演示版, 很多接口没做.
如果说Meta Class是基因改造, class decorator就像是整容手术了. 下面正式开工
=================================================
#!/usr/bin/env python
#coding:utf-8
from init_db import McModel, McCacheA, McCache, Model, mc, cursor_by_table, McLimitA
from const.man import STATE_DEL, STATE_APPLY, STATE_ACTIVE, STATE_BAN
class ReplyMixin(object):
def new_reply(self, man_id, txt, state=STATE_ACTIVE):
rid = self.id
self.reply_count += 1
self.save()
s = self._REPLY_CLS(rid=rid, man_id=man_id, state=state)
s.txt = txt
s.save()
self.mc_reply_id_by_rid.delete(rid)
return s
def reply_list(self, offset, limit):
return self._REPLY_CLS.mc_get_list(
self.reply_id_list(offset, limit)
)
def mixin_reply(reply_cls):
"""
@mixin_reply(XxxReply)
class Xxx(McModel):
pass
"""
def _(cls):
cls.__bases__ = tuple(list(cls.__bases__)+[ReplyMixin, ])
cls.mc_reply_id_by_rid = McLimitA(
"ReplyIdBy%sId#%%s"%cls.Meta.table.title(),
128
)
cls._REPLY_CLS = reply_cls
cls.reply_id_list = cls.mc_reply_id_by_rid("{self.id}")(
reply_id_list
)
return cls
return _
def reply_id_list(self, offset, limit):
c = self._REPLY_CLS.raw_sql(
"select id from " +
self._REPLY_CLS.Meta.table +
" where rid=%s and state>%s order by create_time limit %s offset %s",
self.id, STATE_APPLY, limit, offset
)
return [i for i, in c.fetchall()]
=============================
同时为了统一管理, 迁移原来的一些reply函数到新代码上, 但是保留原接口
=============================
--- mysite/model/review.py (revision 3071)
+++ mysite/model/review.py (working copy)
+from reply import mixin_reply
class ReviewReply(McModel):
pass
+@mixin_reply(ReviewReply)
class Review(McModel):
txt = review_txt.property
def review_reply_by_review_id(id, offset, limit):
- return ReviewReply.mc_get_list(
- review_reply_id_by_review_id(id, offset, limit)
+ return Review(id).reply_list(
+ offset, limit
)
def review_reply_new(review_id, man_id, txt, state=STATE_ACTIVE):
r = Review.mc_get(review_id)
- if r:
- r.reply_count += 1
- r.save()
- s = ReviewReply(rid=review_id, man_id=man_id, state=state)
- s.txt = txt
- s.save()
- mc_review_reply_id_by_review_id.delete(s.id)
- return s
+ return r.new_reply(man_id,txt,state)
评论
张沈鹏,江苏海安人,电子科技大学毕业,北京游吟者科技有限公司老板,公司地址北京昌平区回龙观龙锦苑五区3号楼2单元601室。
张沈鹏视频:http://tech.qq.com/a/20101231/000257.htm
此人在编程和网站技术方面小有名气,如今却借比特币兴起的机会玩起了骗子生意,坐地生财捞了100多万。一百多位买家,花了200多万元,苦等3个多月,却被告知最多只能退55%的货款。他说其他的钱都在研发和购买材料时用光了,可是他从来没有说过要公布财务细节,唯一公开的只是一块做工粗糙的电路板,而且运算能力只有之前宣称的一半!
今年5月份,借着比特币兴起的机会,国内不少团体都公布了比特币矿机的预售计划,方法都是先向买家凑集资金,向南瓜张购买阿瓦隆芯片。由于阿瓦隆芯片要三个月后才能发货,所以买家需要等待至少三个月才能收到比特币矿机。这些团体借口需要大量资金购买阿瓦隆芯片和生产矿机,要求买家当场直接将钱付给他们。
张沈鹏的比特币矿机团队叫42BTC,当时在淘宝上以各种手段诱骗买家当场付款,例如宣称自己的团队由清华大学毕业生组成,有8年以上电子行业经验,保证能如期完成矿机制造(但实际上造出的样机运算能力只有之前宣称的一半)。众多买家轻信张沈鹏的承诺,并没有按照支付宝安全交易的流程,而是直接将钱给了他。张沈鹏因此凑得至少200万元人民币,不用自己再掏任何钱订购芯片和生产,相当于空手套白狼。
时间到了9月初,阿瓦隆宣布不能供货,可以向各个矿机团队退全款。张沈鹏第一时间申请退款,并且如期拿到阿瓦隆退回的全款,但是却在自己网站上宣布最多只能退给买家55%的购机款。
他宣称其他的钱(约100万元)都在研发和购买材料时用光了,可是他从来没有说过要公布财务细节。而根据另一个矿机团队公布的账目,从研发到采购原料,只花费了不到2万元。张沈鹏在矿机上可以说没有做任何事情(矿机图纸资料早已由阿瓦隆公开),白得100多万元。考虑到当时很多买家是用比特币支付的,从5月到现在比特币的单价已经上涨了200多元,他赚得的钱还要更多。不造矿机他反而比原本赚得更多,简直岂有此理!
再此,我们100多位受骗者集体声讨张沈鹏这个欺名盗世的骗子!
我们要求张沈鹏公开账目,并且退回我们的购机全款!
发表评论
-
纪念一个死掉的机器人
2011-04-20 01:45 5923很久以前, 于是, 写过一个天气预报的gtalk机器人, 虽然 ... -
jquery插件elastic, 让输入框自适应文字的高度
2011-03-30 20:59 4732好久没写技术了, 看到赖总的 Pipe——Python 的中 ... -
《在路上 …》 为什么我喜欢DELL, 讨厌苹果
2010-12-31 05:00 6437看了D前辈的文章Apple 的保修不靠谱http://www ... -
《在路上 …》 聊天笔记: 如何调动一个人的积极性去做一件事情
2010-12-24 08:41 5906前两天跟暴风影音的童小军老师( http://42qu.co ... -
《在路上 …》 上网冲浪
2010-12-09 02:31 4707这年头, 做得好那是孤芳自赏, 做得不好那是敝帚自珍, 要是 ... -
《在路上 …》 金山卫士开源 , 人生很多感慨
2010-12-03 04:31 6091最近写日记少了很多, ... -
《在路上 …》 互联网. 人物志
2010-11-24 12:50 3927曾几何时, 我在豆瓣上写过一篇日记, 说要写一个我那圈互联网 ... -
《在路上 …》 做人需要一点演技
2010-11-24 12:50 3771唐骏是说:"我是一 ... -
《在路上 …》 42区介绍演讲- 在家的排练的MP3
2010-11-24 12:50 3640点此收听, 不多说了 订阅到Google 分享到 豆瓣 ... -
《在路上 …》 韩剧情迷
2010-11-24 12:50 1326一边看着韩剧, 一边流着眼泪, 然后觉得这样很假, 又 ... -
《在路上 …》 互联网. 人物志
2010-11-24 12:31 1484曾几何时, 我在豆瓣上写过一篇日记, 说要写一个我那圈互联网 ... -
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator
2010-11-24 12:31 1422写通用的回复类, 原本 ... -
《在路上 …》 做人需要一点演技
2010-11-24 12:31 1390唐骏是说:"我是一 ... -
《在路上 …》 42区介绍演讲- 在家的排练的MP3
2010-11-24 12:31 1471点此收听, 不多说了 订阅到Google 分享到 豆瓣 ... -
《在路上 …》 韩剧情迷
2010-11-24 12:31 1095一边看着韩剧, 一边流着眼泪, 然后觉得这样很假, 又笑了笑 ... -
《在路上 …》 互联网. 人物志
2010-11-24 11:50 886曾几何时, 我在豆瓣上写过一篇日记, 说要写一个我那圈互联网 ... -
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator
2010-11-24 11:50 775写通用的回复类, 原本 ... -
《在路上 …》 做人需要一点演技
2010-11-24 11:50 816唐骏是说:"我是一 ... -
《在路上 …》 42区介绍演讲- 在家的排练的MP3
2010-11-24 11:50 955点此收听, 不多说了 订阅到Google 分享到 豆瓣 ... -
《在路上 …》 韩剧情迷
2010-11-24 11:50 882一边看着韩剧, 一边流着眼泪, 然后觉得这样很假, 又笑了笑 ...
相关推荐
其实也就是其他语言中的AOP的概念,将对象或函数的真正功能也其他辅助的功能的分离。 二、Python中的decorator python中的decorator通常为输入一个函数,经过装饰后返回另一个函数。 比较常用的功能一般使用...
python中完善decorator共5页.pdf.zip
本文实例讲述了Python装饰器decorator用法。分享给大家供大家参考。具体分析如下: 1. 闭包(closure) 闭包是Python所支持的一种特性,它让在非global scope定义的函数可以引用其外围空间中的变量,这些外围空间中...
资源分类:Python库 所属语言:Python 资源全名:drf_nested_decorator-0.3-py2-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
本文研究的主要是python实现Decorator模式,具体介绍如下。 一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类)。首先来看一个简单的例子: # -*- coding: utf-8 -*- ...
装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。...在Python 2.6以及之后的Python版本中,装饰器被进一步用于加工类。 1. 函数 在python中,函数通过def关键字、函数名和
软件介绍: 这个decorator python是网友分享过来的一个模块文件,既然下载肯定会知道它的用途。
python_base.py: 千行代码入门Python python_visual.py: 15张图入门Matplotlib python_visual_animation.py: 使用Matplotlib画...python_decorator.py: Python进阶: 通过实例详解装饰器(附代码) python_datetime.p
离线安装包,亲测可用
主要介绍了python中的decorator的作用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
资源分类:Python库 所属语言:Python 资源全名:cache_decorator-1.2.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
官方离线安装包,亲测可用
超时装饰器安装从源代码: python setup.py install从pypi: pip install timeout-decorator用法import timeimport timeout_decorator@timeout_decorator.timeout(5)def mytest(): print("Start") for i in range(1,...
python-decorator-3.0.1-3.1.el6.noarch
本文实例讲述了Python使用logging结合decorator模式实现优化日志输出的方法。分享给大家供大家参考,具体如下: python内置的loging模块非常简便易用, 很适合程序运行日志的输出。 而结合python的装饰器模式,则可...
离线安装包,亲测可用
python中编写带参数decorator共5页.pdf.zip