常常會在代碼的最下面看到if __name__ == '__main__':,如今就來介 紹一下它的做用.python
模塊是對象,而且全部的模塊都有一個內置屬性 __name__。一個模塊的 __name__ 的值取決於您如何應用模塊。若是 import 一個模塊,那麼模塊__name__ 的值一般爲模塊文件名,不帶路徑或者文件擴展名。可是您也能夠像一個標準的程序樣直接運行模塊,在這 種狀況下, __name__ 的值將是一個特別缺省"__main__"。web
在cmd 中直接運行.py文件,則__name__的值是'__main__';app
而在import 一個.py文件後,__name__的值就不是'__main__'了;ide
從而用if __name__ == '__main__'來判斷是不是在直接運行該.py文件函數
-
- class Test:
- def __init(self):pass
- def f(self):print 'Hello, World!'
- if __name__ == '__main__':
- Test().f()
-
- 你在cmd中輸入:
- C:>Python Test.py
- Hello, World!
- 說明:"__name__ == '__main__'"是成立的
- 你再在cmd中輸入:
-
- C:>python
-
- >>>import Test
-
- >>>Test.__name__
-
- 'Test'
-
- >>>__name__
-
- '__main__'
-
- 不管怎樣,Test.py中的"__name__ == '__main__'"都不會成立的!
-
- 因此,下一行代碼永遠不會運行到!
2. Python中的類
class <類名>:
<語句>
類實例化後,能夠使用其屬性,實際上,建立一個類以後,能夠經過類名訪問其屬性。若是直接使用類名修改其屬性,那麼將直接影響到已經實例化的對象
類的私有屬性:
__private_attrs 兩個下劃線開頭,聲明該屬性爲私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs
類的方法:
在類地內部,使用def關鍵字能夠爲類定義一個方法,與通常函數定義不一樣,類方法必須包含參數self,且爲第一個參數
私有的類方法:
__private_method 兩個下劃線開頭,聲明該方法爲私有方法,不能在類地外部調用。在類的內部調用slef.__private_methods
類的專有方法:
__init__ 構造函數,在生成對象時調用
__del__ 析構函數,釋放對象時使用
__repr__ 打印,轉換
__setitem__按照索引賦值
__getitem__按照索引獲取值
__len__得到長度
__cmp__比較運算
__call__函數調用
__add__加運算
__sub__減運算
__mul__乘運算
__div__除運算
__mod__求餘運算
__pow__稱方
繼承類定義: