iT邦幫忙

0

java to python 一問

  • 分享至 

  • xImage

大家好, 請問一下以下的java 代碼在Python 是怎樣寫?

  1. public void openOracleConnection() throws SQLException, IllegalAccessException, InstatiationException, ClassNotFoundException

  2. java.util.Date

  3. private static final double variableName

  4. public functionname(object param) 的object type

  5. public functionname(Date param) 的date type

  6. public functionname(byte[] param, byte[][] param2) 的byte[], byte[][] type

  7. super()

  8. protected attribute in class

  9. Class1 attribute = new Class1()

謝謝.

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
froce
iT邦大師 1 級 ‧ 2022-02-15 08:52:10
最佳解答
  1. https://docs.python.org/zh-tw/3/tutorial/errors.html
  2. 就datetime.date
  3. python沒public /private /protected 之類從編譯器實作的保護機制,但約定成俗的用下底線(_)開頭的就代表你外部開發者不應該對其存取(但有能力存取),尤其是寫入或指派的動作。
  4. 前面回答過的type hint
  5. 同4
  6. 同4,https://docs.python.org/zh-tw/3/library/stdtypes.html#binary-sequence-types-bytes-bytearray-memoryview
  7. 一樣是super()
  8. 同3,沒這機制,請用下底線開頭當你的atturibute,如 self._attr1
  9. attribute = Class1()
看更多先前的回應...收起先前的回應...
diu7me iT邦新手 4 級 ‧ 2022-02-15 10:27:55 檢舉

謝謝你,froce

diu7me iT邦新手 4 級 ‧ 2022-02-15 17:02:08 檢舉

你好, 第一個還是有點不太明白, 如果是method後面有throws exception 是怎樣寫

diu7me iT邦新手 4 級 ‧ 2022-02-15 17:03:45 檢舉

是這樣嗎?

def insertToFile():
    raise Exception
    ...
    ...
    ...
froce iT邦大師 1 級 ‧ 2022-02-15 19:33:11 檢舉

是的
不過通常會配合try except去捕捉

diu7me iT邦新手 4 級 ‧ 2022-02-16 16:47:46 檢舉

你好, 想問一下如果要declare 一個2d array ,在python 是怎樣寫的, inner dimension 如果沒定義size 是怎樣表達, 謝謝
(java)
var1 = new String[arr.size()][]

froce iT邦大師 1 級 ‧ 2022-02-17 01:32:35 檢舉
var1 = tuple[tuple[int, ...], ...]

大概是這樣吧
定義size比較麻煩,有個Annotated但目前好像pylance不管他,所以會報錯。
只能兩個維度都定義成不定size,或是你得

var1 = tuple[tuple[int, ...], tuple[int, ...], tuple[int, ...]]
 # 重複arr.size個

有點蠢,但目前好像只有這辦法。

diu7me iT邦新手 4 級 ‧ 2022-02-17 12:11:21 檢舉

你好, froce, 請問一下

java catch 有幾款exception:

catch(IllegalAccessException e)
catch(InstantiationException e)
catch(ClassNotFoundException e)
catch(SQLException e)
catch(IOException e)

在python 的相對應是什麼, 還是沒有的, 看到文案沒有

froce iT邦大師 1 級 ‧ 2022-02-17 13:12:53 檢舉
  1. 你不要想一定要跟java完全對應,轉換語言不太可能完全照搬。
  2. python中錯誤是可以客制的,你列的這些某些你可以自己實現,某些在別人的套件庫會實現,某些是內建的
    內建的例外:
    https://docs.python.org/zh-tw/3/library/exceptions.html#bltin-exceptions

或許你的專案很急,但建議我給的幾個連結看熟再做也不遲。
class
https://docs.python.org/zh-tw/3/tutorial/classes.html?highlight=class

常用標準函式庫
https://docs.python.org/zh-tw/3/tutorial/stdlib.html
https://docs.python.org/zh-tw/3/tutorial/stdlib2.html

這邊是官方文件的目錄:
https://docs.python.org/zh-tw/3/contents.html

diu7me iT邦新手 4 級 ‧ 2022-02-17 16:33:24 檢舉

謝謝你啊, froce, 對呀, 我現在的項目是要把現有的java project 轉成python , 很頭疼啊.....

我要發表回答

立即登入回答