python中if __name__ == '__main__': 的解析
經常會在代碼的最下面看到if __name__ == '__main__':,現在就來介 紹一下它的作用.
模塊是對象,並且所有的模塊都有一個內置屬性 __name__。一個模塊的 __name__ 的值取決於您如何應用模塊。如果 import 一個模塊,那么模塊__name__ 的值通常為模塊文件名,不帶路徑或者文件擴展名。但是您也可以像一個標准的程序樣直接運行模塊,在這 種情況下, __name__ 的值將是一個特別缺省"__main__"。
在cmd 中直接運行.py文件,則__name__的值是'__main__';
而在import 一個.py文件后,__name__的值就不是'__main__'了;
從而用if __name__ == '__main__'來判斷是否是在直接運行該.py文件
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__稱方
繼承類定義:
類的私有屬性:
__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__稱方