1. 程式人生 > >Python和Java語言對比

Python和Java語言對比

現在一直習慣於用SSH做WEB開發,但是最近愈來愈感覺對於小的專案工程,Java的SSH框架過於沉重,所以經過調研發現Python語言比較方便,所以最近把python語法看了一遍,故把Python和Java中異同做下對比。

1. 縮排

  • python需要用縮排來識別語句之前的邏輯塊,需要在行尾加上‘:’表示接下來縮排格式相同的語句是一個語句塊【python語句末尾可以不加’;’,但是必須採用縮排
  • Java主要用‘{}’和‘;’來識別,不強制要求縮排(同樣建議使用縮排格式)

2. 數

  • python只有四種資料:證書,長整數、浮點數和複數
  • java則有char,short,byte,int,long,float,double型別

3. 字串

3.1. 字串表示

  • Python中沒有表示單個常量字串型別的char型別,其可以用單引號‘’、雙引號“”來表示一個字串,也可以用三引號來表示一個多行字串
  • Java中char表示單個字元,String表示一個字串,常量字元字串用雙引號“”表示

3.2. 多行字串

  • Python在字串末尾加上反斜槓(/)表示字串在下一行繼續
  • Java用加號(+)表示字串在下一行繼續

3.3. Python中其它的表示方法

  • python中還有可以在字串前加字首r或R:表示自然字串,即不對字串做轉移處理(比java方便
  • Python可以加字首u或U:表示unicode字串

4. 操作符

  • Python中**表示冪計算,如果 X**y表示 Xy
  • Python中//表示整除,即商的整數部分
  • Python中~表示按位翻轉,~x就是-(x+1)

5. 介面與繼承

  • Python中繼承示例如下:
#!python
class Fruit:
      def __init__(self, color):
           self.color = color
           print "fruit's color: %s" %self.color

      def grow(self):
           print "grow..."
#!python
class Apple(Fruit): #繼承了父類 def __init__(self, color): Fruit.__init__(self, color) #顯示呼叫父類的__init__方法(Python不會自動呼叫基本類的__init__()) print "apple's color: %s" % self.color
class Banana(Fruit):                              #繼承了父類
      def __init__(self, color):                  
           Fruit.__init__(self, color)            #顯示呼叫父類的__init__方法
           print "banana's color:%s" %s self.color

      def grow(self):                             #覆蓋了父類的grow方法
           print "banana grow..."

注意: Python 中的__init__()方法類似與Java中的建構函式,Java建構函式中的self預設存在,不需要在建構函式宣告的時候進行顯示指明,但是Python需要在__init__()函式中顯示指明(但是ID呼叫時不用顯示進行self傳遞)

  • Python中的介面
    Java中的介面介面是為了解決不能多繼承的問題,由於Python中支援多繼承,所以Python中沒有介面的概念。
    由於介面是特殊的抽象類,介面沒有資料成員,而是一組未實現的方法的集合。要想實現介面的功能,完全可以用一個空的類來做。
    例如:
#!Python
    class Fruit():  
        def add(self):  
             pass  
        def remove(self):  
             pass  

6. 物件的序列化表示

  • Python中可以使用str()或repr()函式來實現物件的序列化
  • Java中通過toString()方法來實現物件的序列化

7. 引數傳遞中的*和**