Python中的__name__和類
經常會在程式碼的最下面看到if __name__ == '__main__':,現在就來介 紹一下它的作用.
模組是物件,並且所有的模組都有一個內建屬性 __name__。一個模組的 __name__ 的值取決於您如何應用模組。如果 import 一個模組,那麼模組__name__ 的值通常為模組檔名,不帶路徑或者副檔名。但是您也可以像一個標準的程式樣直接執行模組,在這 種情況下, __name__ 的值將是一個特別預設"__main__"。
在cmd 中直接執行.py檔案,則__name__的值是'__main__';
而在import 一個.py檔案後,__name__的值就不是'__main__'了;
從而用if __name__ == '__main__'來判斷是否是在直接執行該.py檔案
- #Test.py
- class Test:
- def __init(self):pass
- def f(self):print'Hello, World!'
- if __name__ == '__main__':
- Test().f()
- #End
- 你在cmd中輸入:
- C:>Python Test.py
- Hello, World!
- 說明:"__name__ == '__main__'"是成立的
- 你再在cmd中輸入:
- C:>python
- >>>import
- >>>Test.__name__ #Test模組的__name__
- 'Test'
- >>>__name__ #當前程式的__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__稱方
繼承類定義:
相關推薦
Python中的__name__和類
經常會在程式碼的最下面看到if __name__ == '__main__':,現在就來介 紹一下它的作用. 模組是物件,並且所有的模組都有一個內建屬性 __name__。一個模組的 __name__ 的值取決於您如何應用模組。如果 import 一個模組,那麼模組__name__ 的值通
Python中List和字符串類型的相互轉換
相互轉換 join world 字符串類型 類型 引號 style spa 字符串類 1.字符串轉換成List a = ‘Hello World!‘ a_list = list(a) //[‘H‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘ ‘, ‘W‘, ‘o‘, ‘
5分鐘搞懂Python中例項方法,類方法和靜態方法
1. 例項方法: 由例項物件呼叫且至少有一個self引數; 執行例項方法時,自動將呼叫該方法的物件賦值給self. 2.類方法: 由類物件呼叫且至少有一個cls引數; 執行類方法時,自動將呼叫該方法的類賦值給cls. 3.靜態方法: 由類呼叫, 沒有預設引數. class Foo(object
Python中sort()和sorted()的區別
-s 可變對象 傳遞 內置函數 ict pan 16px nbsp lin 1、sort()是可變對象(字典)的方法,無參數,無返回值, sort()會改變可變對象,因此無需返回值。例如: list: 1 >>> a = [4,3,7,8] 2 >
Python中range和xrange的異同之處
基本上 xrange class 依據 對象 lis tar 都是 post range 函數說明:range([start,] stop[, step])。依據start與stop指定的範圍以及step設定的步長,生成一個序列。 range演示樣例: &
大話Python中*args和**kargs的使用
print rgs 使用 logs python spa key bsp value 對於初學者來說,看到*args和**kargs就頭大,到底它們有何用處,怎麽使用?這篇文章將為你揭開可變參數的神秘面紗 1.*args 實質就是將函數傳入的參數,存儲在元組類型的變量ar
python中xrange和range(轉)
log item .py 對象 nbsp net range all file 說到序列,我們第一想到的是一組有序元素組成的集合。同時,每個元素都有唯一的下標作為索引。 在Python中,有許多內界的序列。包括元組tuple,列表list,字符串str等。上面提到的序列
python中編碼和解碼decode和encode的使用
python encode decode python 在處理字符串時經常遇到編碼錯誤,導致亂碼,且python 2.x和 python 3.x之間有很大的不同,先在這裏記錄一下,以後整理;轉載 文章一篇:http://www.cnblogs.com/evening/archive/2012/04
Python中map和reduce函數
courier ref tail erl position 必須 第一個 http title ①從參數方面來講: map()函數: map()包含兩個參數,第一個是參數是一個函數,第二個是序列(列表或元組)。其中,函數(即map的第一個參數位置的函數)可以接收一個或多個參
Python中*args 和**kwargs的用法
ase 再次 使用 clas **kwargs sdn 知識庫 base *args 好久沒有學習Python了,應為工作的需要,再次拾起python,喚起記憶。 當函數的參數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有ke
Python中os和shutil模塊實用方法集錦
重命名 信息 env putenv six ner 文件夾 rem move # os 模塊os.sep 可以取代操作系統特定的路徑分隔符。windows下為 ‘\\‘os.name 字符串指示你正在使用的平臺。比如對於Windows,它是‘nt‘,而對於Linux/Uni
亂碼問題引申 python 中string和unicode
-c 錯誤方法 odin 版本 需要 content 2.7 encode 我們 HtmlTestRunner的亂碼問題 1生成的報告中,對print打印的數據都記錄下來,但是數據有些會存在亂碼。如下面。有些又沒有亂碼。 這到底是怎麽回事呢?
python中return和print的區別
bsp 不同 urn text 一是 什麽 cnblogs style c99 之前遇到這個問題,就試著對比幾種不同的結果,總結啦一下return和print的區別。 總結: return的作用之一是返回計算的值print的作用是輸出數據到控制端在第一個結果中什麽都沒
python中的元類(metaclass)
優先 裝飾器 target {} pass get tac 搜索 items 認識python中元類的準備工作。 1,首先需要明白一個概念就是python中一切皆為對象。 input: class Trick(object): pass print type(‘1234
Python中的基本類型簡介
rip 作用 集合 成了 叠代 如果 增加 下劃線 等號 1、變量 變量不僅可以是數字,還可以是任意數據類型 命名規範:變量是用一個變量名表示,變量名必須是大小寫英文、數字和下劃線_的組合,且不能用數字開頭 python中等號“=”是賦值語句,可以把任意數據類型賦值給變量
Python中生成器和叠代器的功能介紹
family line 介紹 mil auto 叠代器 常用 方法 lean 生成器和叠代器的功能介紹 1. 生成器(generator) 1. 賦值生成器 1. 創建 方法:x = (varia
Python 中 Iterator和Iterable的區別
pytho 數據 執行 next 判斷 -h 實現 col http (轉載:http://blog.csdn.net/passionkk/article/details/49929887) Python中 list,truple,str,dict這些都可以被叠代,但他們並
python對象和類
python對象和類#coding:utf-8 #1、對象是一個有著相應行為的數據的集合 #2、在面向對象建模中,用於各種描述對象的屬於叫做類 #3、類和對象的區別:類描述了對象,是創建對象的模板 #4、關聯是把兩個類聯系起來最基本的方式 #5、一個類可以通過關系中其他端的任何一個對象關聯在一起,這個類的對
python中%r和%s的區別
ould mat mark post inf info repr pan formatter %r用rper()方法處理對象 %s用str()方法處理對象 有些情況下,兩者處理的結果是一樣的,比如說處理int型對象。 例一: print "I am %d years o
Python中@property和@classmethod和@staticmethod
return 被調用 命令 成了 aps display init 命名空間 類的方法 前戲 首先,先要弄清楚一個類裏面的,各個組成部分都應該怎麽稱呼。 - 註:可能叫法會不太一樣。 關於@property 顧名思義:它的意思為‘屬性’。