#56 楼 @Saito 有区别啊
>>> class A(object): ... pass ... >>> old = a = A() >>> class B(object): ... pass ... >>> a.__class__ = B >>> a == old True >>> a = B() >>> a == old False
直接改 __class__ ,引用 a 的地方,你不用去改。生成一个新的 object,你得改所有引用旧的 object 的地方,这个好像没啥办法。
__class__
#54 楼 @Saito 见 #53 楼
#52 楼 @Saito 你说的挂是啥概念?
instance 需要你主动去替换的,换掉 instance 的 class 之后,旧版的 class 就可以被回收了
>>> class A(object): ... pass ... >>> a = A() >>> class B(object): ... pass ... >>> a.__class__ = B
#48 楼 @hooopo 不是,Python 和 Ruby 的官方实现,从 C 层面上看,object 都是有个一个类型指针的。只是 Ruby 不让你在 Ruby 代码里替换这个指针,就是这样...
#49 楼 @Saito GC 也不行啊,因为已经存在的 object 会引用旧版的 class,只要那个 object 没死,旧版的 class 就不会被干掉啦...
#46 楼 @Saito 你不觉得不能改会有问题么,每载入一份新版本的代码,内存占用就多那么一点点...
#44 楼 @Saito 反正就是 Ruby 不能直接把 object 的 class 改了,Python 可以...
#41 楼 @Saito http://stackoverflow.com/questions/7528552/is-it-possible-to-change-the-class-of-a-ruby-object
http://www.ruby-forum.com/topic/87005
看来 Ruby 就是不能
#41 楼 @Saito 你这不算啊,你后面的 B 是新建出来的啊
#39 楼 @Saito 所以不一样么
#37 楼 @Saito 这个不算啊,Python 里面 b.__class__ = B 是起作用的,用来作弊的__instancecheck__和__subclasscheck__
b.__class__ = B
__instancecheck__
__subclasscheck__
#35 楼 @Saito Ruby 里面 b.__class__ = B 咋实现?
#29 楼 @Saito 想起来了,Python 可以作弊的...
http://docs.python.org/reference/datamodel.html#customizing-instance-and-subclass-checks
#29 楼 @Saito 得把 instance 也改掉啊,你这样光改个 class 又没用的
#9 楼 @fresh_fish 这有啥不保险的,数据库就是拿来干这活的...
#27 楼 @Saito
就像这样直接替换掉啊
>>> class A(object): ... a = 1 ... >>> class B(A): ... pass ... >>> b = B() >>> b.a 1 >>> class B(object): ... pass ... >>> b.__class__ = B >>> b.a Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'B' object has no attribute 'a'
#25 楼 @Saito 明显不行啊,最多只能动态生成一个新类替换进去...
#23 楼 @Saito 所以还是不行嘛
#21 楼 @Saito 这个只是重新生成了一个类吧...
#2 楼 @hooopo 我是说用户积分还不如直接 JOIN,冗余估计也不能改善多少啊
我觉得就那些查询的时候需要 aggregate 的才要冗余吧...
13 对上传的 MS Word DOC 文件提供预览,文字提取或转换成 PDF
这个有难度吧
感觉基于 Web 的各种不靠谱啊
看到英文很烂的招聘就直接 Pass。。
#11 楼 @hooopo 我一直认为 Ruby 1.9 就是 2 啊...
#9 楼 @hooopo
看来 Ruby 2 快了不少啊,的确是 1.8.7 比较慢的缘故
$ ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
好歹也具体介绍下已有的基础是怎么个情况...
已有的基础
#7 楼 @hooopo 为啥我觉得他们的机器都快得离谱啊。我这少个零,也分别要
total cast time:5.62507 total cast time:3.195106
还是我机器太烂了...
#32 楼 @gaicitadie 也不是啦,至少所有我听说的一站式的框架都缺个给力的 ORM,所以变化还是会有的啦...
#17 楼 @hooopo 其实啦,Python 的实现也是这么坑爹的。但 Rails 也太夸张了,想想以前折腾 redmine 的时候,发现一个进程刚起来啥都没干就吃掉了 80+M 的内存啊,直接就傻掉了...