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)