Python需要了解清楚的問題
最新
02-02
問題一:_和__的區別是什麼?
python中沒有私有屬性或方法,加上單下劃線用例提示該屬性或方法不應在外部調用,但是調用了也不會出錯,但不符合規範,例如print mc._hello和mc._printStr()。
加雙下劃線的作用是避免子類覆蓋其內容,mc.__world和mc.__printStr2()調用會報錯,但可以在前面加上_MyClass調用。
問題二:迭代器和生成器有什麼區別?
迭代器表示對象是可迭代的,可一個一個地讀取它的每一項,但是必須把它們的值都放在內存里,值比較多時會消耗太多的內存。
生成器是迭代器的一種,但只能迭代它們一次,最後會報StopIteration異常,因為它們的值不是全部存在內存里的,只在要調用的時候在內存生成。
問題三:__init__和__new__的作用是什麼?
__new__是創建類實例的方法,__init__是類實例創建後進行初始化的方法,在__new__方法後調用。__new__方法通常情況下是使用 super(類名, cls).__new__(cls, … …) 這樣的方式返回,可用__new__實現單例。
更多問題見:https://taizilongxu.gitbooks.io/stackoverflow-about-python/content/index.html
※Python作SCI圖起步
※Python學習攻略之資料庫篇
TAG:Python |