2016-12-07 89 views
-5

我有以下對象:如何在Python中填充對象?

FILES = (
     ('hello3.txt', True), 

    ) 

如何將新元素添加到文件?

我想:FILES.append("name.txt")

我用這個例子,並需要添加從目錄中的元組中的所有文件:https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q

+10

元組是不可改變的,考慮讓'FILES'列表 –

+1

使用'A = '1',真]'然後'a.append( '東西')' – sashoalm

+0

我用這個例子,需要添加到元組目錄中的所有文件:https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q – Griboedov

回答

1

'tuple' object does not support item assignment. 就像Moses Koledoye說的,元組對象是不可變的。

如果你想添加或刪除FILES, 嘗試:如果您想更改文件或T/F值的名稱

FILES = [('hello3.txt', True)] 
FILES.append(('new.txt', False)) 

,使用list代替tuple

FILES = [['hello3.txt', True]] 
FILES.append(['new.txt', False]) 
FILES[0][1] = False 

但是我認爲這些代碼是如此的醜陋。我更喜歡創建一個類而不是使用列表。

class File: 
    __slots__ = 'name', 'flag' 
    def __init__(self, name, flag): 
     self.name = name 
     self.flag = flag 
FILES = [File('hello3.txt', True)] 
FILES.append(File('new.txt', False)) 
FILES[0].flag = False 

還有一個簡單的方法,如果你的文件只有2個屬性(名稱和標誌)。

FILES = {'hello3.txt': True} 
FILES['new.txt'] = False 
+0

循環更新問題 – Griboedov

+0

@Griboedov你的意思是你想獲得特定目錄中的所有文件? – EmOwen

2

您正在使用這裏的元組。有不可變的,創建後你不能添加東西。

最好的辦法就是在這裏使用的另一種數據結構:列表!如果您需要了解「詞典」更加困難和高性能結構 https://docs.python.org/3/tutorial/datastructures.html

FILES = ['hello3.txt', True] 

現在追加功能,可以完成自己的工作

FILES.append("name.txt") 

更多不同的數據結構在這裏。

+0

那麼,它是正確的嗎? 'FILES = [] FILES.append((文件名,真))' – Griboedov

+0

循環更新問題 – Griboedov