2015-06-16 24 views
1

我知道在python中初始化變量/常量是不必要的,但是我的教授仍然希望我們爲練習初始化變量。「初始化」包含python文件的常量?

在我的計劃,我有一個文件,我分配了一個名字:

infile = open("studentinfo.txt", "r") 

它是如何將是有意義的初始化常數「INFILE」?我可以將它初始化爲一個空字符串,還是應該將它作爲空文件來執行?

+0

「初始化練習變量」 - 練習*什麼*?毫無意義的樣板? – jwodder

+0

@jwodder哈哈它應該是練習時(如果)我們上其他語言的類 – Ovi

+1

順便說一句:當處理文件時,你幾乎從不將它們分配給一個變量。你總是傾向於通過'with'語句來使用它們:'用open(...)作爲f:用於f:print(line)'中的行。通過這種方式,文件在塊的末尾自動關閉,您不必擔心缺少對'.close()'的調用。 – Bakuriu

回答

3

Python中的常用方法是一個變量初始化爲None,如果不使用它然而。這是您的代碼的未來讀者的信號,表示您希望該變量存在,但直到後來它纔會被使用。

infile = None 

這樣,整個代碼的其餘部分,可以檢查值是否設置尚未...

if infile is None: 
    infile = open(filename, 'r') 
with infile: 
    data = infile.read() 

這種方法與類型檢查(uglly)節省您和您知道如果infile不是None那麼它必須是一個文件,因此您只是將它用作文件(「duck typing」)。例如,在代碼中的其他地方,你可能有...

if infile: 
    data = infile.read(1024) 
else: 
    data = '' 

這是非常可讀的,沒有任何破壞,如果從未設置文件。

0

我猜你的教授希望你習慣靜態鍵入未來的語言,在這種情況下,我會使用infile=str()來確保python將它視爲一個字符串。這也最接近模仿其他語言的語法,不像說:infile=''。如果你想要一個空文件類型infile = file()

4

通常情況下,當我們要設置一個變量,以「特別沒有價值,」我們使用None

infile = None 
# ...several lines later... 
infile = open(...) 
0

文件是objectsNone怎麼樣?

文件名可能是stringsfilename = str()filename = None

filename = str() 

# or... 
filename = None 
infile = open(filename, 'r')