Python和Java語言對比
阿新 • • 發佈:2019-02-08
現在一直習慣於用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()方法來實現物件的序列化