進击の程序猿

导航

Java与python区别

1.   继承和多态。

  http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431865288798deef438d865e4c2985acff7e9fad15e3000

  静态语言 vs 动态语言

  对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,将无法调用run()方法。

  对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了:

  class Timer(object):
      def run(self):
          print('Start...')

   这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。

     也就是说只要一个class里面有animal一样的方法,他就能被看做是animal被调用。

 

2.  访问限制

  http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318650247930b1b21d7d3c64fe38c4b5a80d4469ad7000

    Python本身没有任何机制阻止你越权访问,一切全靠自觉。

3. 实例属性和类属性

  实例属性是写在方法体内的self.xxxxx ,类属性是写在 方法体外。

 

posted on 2017-04-19 21:24  進击の程序猿  阅读(325)  评论(0编辑  收藏  举报