2015-04-27 38 views
0

代碼片段:期望的字符串有屬性,而不是

def copy_additional_files(self): 
try: 
    for filetocopy in self.files_to_copy: 
     shutil.copy2(FileToCopy.get_source, FileToCopy.get_target) 
except NotImplementedError: 
    logging.error('keep thinking') 
    raise EwaException 

get_source@property返回一個字符串 - shutil.copy2需要一個字符串工作

我的IDE(PyCharm 4.0.6)告訴我,它預期一個字符串,但得到了一個屬性。

這是一個錯誤嗎?屬性可以返回一個字符串等additional_file_source可以是一個字符串,以及(因爲它旨在是),但它返回屬性對象的對象ID,當我打印:

<property object at 0x....> <property object at 0x....> 

並拋出:

「財產」不支持緩衝區接口

有沒有更簡單而明顯的方式做到這一點沒有一個錯誤?

+0

忽略PyCharm說什麼。代碼是否工作? –

+0

您收到警告或實際錯誤? –

+0

它返回屬性的對象ID;所以我有一個新的問題:我如何將返回值分配給var名稱 – user4801311

回答

2

您正在調用類本身的屬性,而不是您在循環內部獲得的類的實例。它應該是:

for filetocopy in self.files_to_copy: 
    shutil.copy2(filetocopy.get_source, filetocopy.get_target) 

(同樣,請選擇更好的名稱; get_source意味着你調用一個方法,屬性應該只是source。)

+0

謝謝,先生! – user4801311

相關問題