所謂魔術(shù)方法,指的是雙下劃綫開頭和結(jié)尾的方法,自定義一個類someclass,然后用dir(someclass)就可以看到python內(nèi)置的這些魔術(shù)方法了。
這些魔術(shù)方法可讓自定義的類有內(nèi)置類型的性質(zhì)(所謂A像B,指的是A像B的某些性質(zhì))。比如自定義的類可能是無法迭代的,但是通過定義iter()與next()方法,可以讓類變成可迭代對象。
官方不建議我們用雙下劃線定義自己的函數(shù)。
name: if name == "main":每當Python解釋器讀源代碼的時候,都會給name賦予一個變量,如果源代碼直接被執(zhí)行,則name == "main",否則不等。這樣做的好處是,如果源代碼模塊只是被imported進另一塊代碼,那么解釋器就只會創(chuàng)建相應的命名變量和方法,而不會去執(zhí)行。更多參考What does if name == “main”: do?