Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1047797
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T16:21:25+00:00 2026-05-16T16:21:25+00:00

Simple question, I’ve scaled down a problem I’m having where a list which I’ve

  • 0

Simple question, I’ve scaled down a problem I’m having where a list which I’ve retrieve from an object is changing when I append more data to the object. Not to the list.

Can anyone help my understand the behavior of python?

class a():
    def __init__(self):
        self.log = []
    def clearLog(self):
        del self.log[:]
    def appendLog(self, info):
        self.log.append(str(info))
    def getLog(self):
        return self.log

if __name__ == '__main__':
    obj = a()
    obj.appendLog("Hello")

    # get an instance as of this moment....
    list = obj.getLog()
    print list

    obj.appendLog("World")

    # print list, BUT we want the instance that was obtained
    # before the new appendage.   
    print list

OutPut:

['Hello']
['Hello', 'World']
  • 1 1 Answer
  • 3 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T16:21:26+00:00Added an answer on May 16, 2026 at 4:21 pm

    The only place you create a new list is in the constructor, with the statement:

    self.log = []
    

    Later, when you do:

    list = obj.getLog()
    

    just puts a reference to the same list in a new variable (note, don’t use list
    as a variable name, since it shadows the type). It does not create or clone a list in any way. If you want to clone it, do:

    def getLog(self):
        return list(self.log)
    

    You can also use a tuple (read-only sequence), if that’s appropriate:

    def getLog(self):
        return tuple(self.log)
    

    This may help minimize confusion about which should be modified.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Simple question, I would like to append text to the front of every print
Simple question to which I can't find any nice answer by myself: Let's say
Simple question, does a list in Java hold objects by value or reference? If
Simple question. Say I have a bunch of NIL's in my list q .
Simple question, if your iterating through a list of objects using fast enumeration is
Simple question, but I can't seem to figure it out. I have a list,
Simple question, how do you list the primary key of a table with T-SQL?
Simple question - In c++, what's the neatest way of getting which of two
Simple question, (Easy points!) In Delphi 2010 (with updates 4 and 5) Find in
Simple question: Is there a class or interface that encapulates the getting of a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.