2021年10月25日 星期一

關於 Python 的繼承問題

 關於 Python 的繼承問題

前言

  在之前的 Javascript 的 class 繼承的注意事項 實驗了 JavaScript 的 super 的用法,這次把相同的做法放在 Python 會有一樣的結果嗎?在此把學習的過程做個紀錄。


內容

  範例如下

class BaseClass:
    def __init__(self):
        pass
    def call(self):
        print('I am BaseClass.')
#
class ExClass(BaseClass):
    def __init__(self):
        pass
    def call(self):
        print('I am ExClass.')
#
class ExClass1(ExClass):
    def __init__(self):
        pass
    def call(self):
        #Follow  code will failed!
        #super().super().call()
        super().call()
        print('I am ExClass1.')
#
a = ExClass1()
a.call()


實驗的結果和 JavaScript 一樣, super 只能單次使用,不能連著用,看來這個特性和 JavaScript 是一致的!


相關文章與資料

Javascript 的 class 繼承的注意事項

2021年10月18日 星期一

JavaScript 的 Static initialize(靜態初始化) 語法

 JavaScript 的 Static initialize(靜態初始化) 語法

前言

  在之前的 初探 JavaScript 的 class 語法 介紹了 class 的語法,但無法使用 Static initialize(靜態初始化) ,最近發現新標準已經開始支援了,在此做個紀錄。


內容

  範例如下

class CMyClass{
  static __var = 'Hello static member';
  static{
    console.log(CMyClass.__var);
  }
}


用起來相當直覺,只要用 "static {}" 起來就可以直接包在 class 的區塊裡,以前必須要寫在 class 的區塊外。這次也發現 static variable 也支援了, 不知不覺 JavaScript 已經實現了常見的 class 語法了。


參考資料

[ juejin.cn ] 即将到来的ECMAScript 2022标准


 相關文章與資料

初探 JavaScript 的 class 語法

2021年10月11日 星期一

關於 Python 的 if in 語法

 關於 Python 的 if in 語法

前言

  以前我一直認為 for 、 if  與 in 是各自獨立的語法,所以不會在 if 的時候使用 in ,但最近發現這個觀念是錯的,應該是 for in 與 if in 這樣分才對,所以就做個學習,在此做個紀錄。

 

內容

  範例如下

str = 'Hello world'
if 'world' in str:
    print( 'True' )
else:
    print( 'False' )
#
res = 'True' if 'world' in str else 'False'
print( res )


範例的開頭使用 if in 來檢查 str 裡是否有'world',如果有就顯示'True',相反則是'False',接著是個人覺得很不直覺的語法,把 if else 一行解決的語法與 if in 搭配使用的範例,不直覺地點就是成立的結果要打在前方,語法就是覺得讀起來有些不舒服,不過卻看到語法教學網站推薦使用就是了。


參考資料

[ jarvus.dragonbeef.net ] Python技巧:新手提升效率的必學語法

2021年10月4日 星期一

JavaScript 的新語法"??"

  JavaScript 的新語法"??"

前言

  最近看到 JavaScript 的語法裡有"??",就抽空做個學習,在此做個紀錄。


內容

  範例如下

let a;
let b = a ?? 5;
console.log(b);//5
let x;
x ??= 12;
console.log(x);//12


第二行的意思可以解釋成"如果 a 是 null 或 undefined  , b 就等於 5 ",可以想成就是當某變數為空值時給予預設值,這個語法還有另一種用法"??=",第四行可以解釋成"如果 x 是 null 或 undefined  , x 就等於 12 "。


參考資料

[ dev.to ] New Features in ECMAScript 2021 (with code examples)

2021年9月27日 星期一

在 Obsidian 使用 Youtube 影片

 在 Obsidian 使用 Youtube 影片

前言

  在之前的 好用的筆記軟體 Obsidian 介紹了 Obsidian  ,但最近因為需要在筆記裡放上 Youtube 影片,如果使用超連結的做法會無法即時看到影片,所以就來研究如何即時看到的方法在此做個紀錄。


內容

  要即時看到 Youtube 影片的做法是先到要貼的  Youtube 影片頁面,如下圖

按下"分享"按鍵


按下頁面的"分享"按鍵可以得到下圖

按下"嵌入"按鍵

按下"嵌入"後可以得到下圖

複製右側的內容


複製右側的內容直接貼到 Obsidian 就可以直接看到 Youtube 影片,如下圖

結果


參考資料

[ www.reddit.com ] Obsidian Basics: iframe - Embed widgets, Tweets, Weather, YouTube, stock data, map, calendar, etc.


相關文章與資料

好用的筆記軟體 Obsidian


2021年9月20日 星期一

好用的筆記軟體 Obsidian

 好用的筆記軟體 Obsidian

前言

  常見的文書處理軟體像 Notepad++ 處理單一文件時很好用,但如果文件與文件之間有關連性的時候就不是很好用,尤其是文件很多又有關聯性,這時候就需要用筆記軟體,筆記軟體可以輕鬆地建立關聯性,這裡推薦使用 Obsidian ,在此做個紀錄。


內容

  軟體可以在 [ obsidian.md ] Obsidian 官網 取得,完全免費並且不用註冊帳號,軟體的使用介面如下

Obsidian 的操作介面


操作介面不太像傳統 Windows 的樣子,但其實不難懂,畫面"1" 的位置就是功能列,可以新增檔案與資料夾,畫面"2" 的地方會顯示工作資料夾下的文件,畫面"3"的部分會顯示文件與功能視窗,每個都是浮動式窗可以自己規劃。 Obsidian 的每個文件都是".md",不難想像他支援時下流行的 markdown 語法,如果要新增圖片可以用拖曳的方式新增, Obsidian 會自動把圖片複製一份到工作資料夾下,這功能很好用,接著是 Obsidian  特有的語法,這是為了建立關聯性而新增的,如下圖

關聯性語法


畫面"1" 的地方把要關聯的文件檔名用"[["與"]]"包起來就可以建立關聯性,如果點擊畫面"2"的地方就可以直接跳到該文件,這功能就像是網站的超連結一樣相當好用。


參考資料

[ obsidian.md ] Obsidian 官網

[ wcc723.github.io ] 十分鐘快速掌握 Markdown

2021年9月13日 星期一

關於JavaScript 的表達數值新語法

關於JavaScript 的表達數值新語法

前言

  最近發現 JavaScript 的表達數值新語法滿實用的,就來學習並做個紀錄。


內容

  先看範例

let num = 100_000;
console.log( num );
//
let bNum = 0b1_00;
console.log( bNum );
//
let hNum = 0xa0_ff;
console.log( hNum );


第一段就是單純的 Number ,但跟以往的表達不太一樣的是多了個"_",這個"_"可以自幾加,例如每三個 0 就加一個"_",這樣在視覺上會很方便看出要表達的數值,第二段式表達二進制,在數值前加"0b"後接數值即可,這裡也支援使用"_",第三段則是十六進制的表達,在數值前加"0x"後街數值即可,同樣也支援使用"_"來方便辨識數值。


參考資料

[ dev.to ] New Features in ECMAScript 2021 (with code examples)