After running the code below, I expect that folders[0]
has 1 File
and folders[1]
has 0 File
s. Why is the code instead inserting the File
into both Folder
s?
Code:
class Folder(object):
# __init__
def __init__(self):
pass
list_of_files = []
class File(object):
# __init__
def __init__(self):
pass
def insert_into_folder(self, folder):
folder.list_of_files.append(self)
def main():
folders = []
folders.append(Folder())
folders.append(Folder())
f = File()
f.insert_into_folder(folders[0])
for folder in folders:
print("Folder {:d} has {:d} file(s)".format(folders.index(folder), len(folder.list_of_files)))
if __name__ == "__main__":
main()
Output:
Folder 0 has 1 file(s)
Folder 1 has 1 file(s)
Process finished with exit code 0