簡體   English   中英

預期的字符串獲取了屬性

[英]expected string got property instead

程式碼片段:

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 - shutil.copy2需要一個字符串才能工作

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

那是個錯誤嗎? 一個屬性可以返回一個字符串,因此additional_file_source也可以是一個字符串(按預期的方式),但是當我打印它時,它返回屬性對象的對象ID:

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

並拋出:

“屬性”不支持緩沖接口

有沒有更簡單,更明顯的方法來執行此操作而沒有錯誤?

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

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

(另外,請選擇更好的名稱; get_source表示您調用的方法,該屬性應該只是source 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM