一直对动态语言很好奇,却一直没有正式用过动态语言的动态特性。用的最多的还是把javascript作为一种命令式语言来操作HTML DOM。

今天看到一个关于IronPython的录像,动态语言的强悍功能让我大为震惊。居然可以运行时为一个class增加方法/属性或者替换方法。

下面是一段在IronPython控制台中可以使用的命令脚本。

>>> def foo(self):"""定义一个方法
...     print 1
...
>>> class CTest:"""定义一个类
...    def Bar(self):
...     print 2
...
>>> t1 = CTest()"""创建一个类的实例
>>> t1.Bar()"""
2
>>> CTest.Foo = foo"""为类动态的增加一个方法
>>> t1.Foo()
1
>>> def Func1(self):
...  self.Bar()
...
>>> CTest.Func1 = Func1
>>> t1.Func1()
2
>>> t1.Func1()
2
>>> t1.a = 1"""为对象动态的增加一个属性
>>> def Func2(self):
...   print self.a
...
>>> CTest.Func2 = Func2
>>> t1.Func2()
1
>>>

相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-22
  • 2022-12-23
  • 2021-05-25
  • 2021-12-07
  • 2021-11-03
猜你喜欢
  • 2021-08-17
  • 2021-11-14
  • 2021-10-09
  • 2021-12-26
  • 2021-04-02
  • 2021-09-16
  • 2021-04-27
相关资源
相似解决方案