使用 python 模拟 ruby 的 open class

老早就写了这些代码,但一直懒得为它写篇博客,我觉得我永远也无法理解为什么会有人发明这种奇怪的东西。
不过终于还是决定写一篇吧,多一点有意思的代码也许能吸引更多人对 python 的兴趣呢,呵呵。虽然我对 ruby 的这个东西有许多贬义词想说,不过想想既然有人用,也就应该有其理由吧。
且看代码:

( klass, bases, attrs ):
k,v attrs.items():
k.startswith() k.endswith():
setattr(klass, k, v)
bases:
klass.__bases__ = bases
klass

(type):
(cls, klass, bases, attrs):
:
update( globals()[klass], bases, attrs )
KeyError:
type.__new__(cls, klass, bases, attrs)


__metaclass__ = Meta


:
(self):


a = A()
a.say()

:
(self):

(self):


a.say()
a.new_func()




















update: 很遗憾,测试发现 new style class 貌似还有个 bug 。所以把后面部分注释了先,不知道 python2.5 怎么样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值