第一張圖用實體物件來取得檔案資料
二三張圖是只用函式來達成目的
我想問的是下面的方法應該比較簡單啊
為甚麼要用實體物件
用函式寫的話
要當模組使用, 在主程式撰寫也比較方便
實體物件有甚麼特別的功用嗎
還有, 初始化函式__init__ 固定不回傳東西嗎, 如果在下面return東西會造成程式錯誤嗎
追加個問題 open(檔案...) 只能開啟 檔名.txt的檔案嗎 檔名.py的檔案為甚麼開不了
1.有些東西你不用物件導向去做,會很難做,並且要重複大量的code。
像某些設計模式的效果。
2.之前有說到魔術方法,也就是雙下底線包住的物件方法,這種方法有特定的用途,你必須瞭解他的規範,要不然覆寫後物件會產生非預期的行為。
__init__也是其中一種,因此有他既定的規則要遵守。
他不能回傳None以外的值,也就是你一定要寫return的話,就是像下面這樣:
class TestCLS:
def __init__(self, x):
return
TestCLS(1) # <__main__.TestCLS object at 0x10b2574a8>
class TestCLS2:
def __init__(self, x):
return None
TestCLS2(1) # <__main__.TestCLS2 object at 0x10b2574e0>
如果傳的是其他值,會很明白的告訴你:
TypeError: __init__() should return None, not '<傳回的類型>'