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

  • SEARCH
  • Home
  • 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 7034221
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T01:09:34+00:00 2026-05-28T01:09:34+00:00

Possible Duplicate: Python: How do I pass a variable by reference? I want to

  • 0

Possible Duplicate:
Python: How do I pass a variable by reference?

I want to test the parameter passing behavior in python function by the following 2 functions:

In:

def f(a):
        a[0]=3
        print 'in f ',a
a=[1,2]
print 'ori ',a
f(a)
print 'now ',a

It turned out the “a” has been modified after returning from f().

However, in:

import numpy as np
def f(a):
        a=np.array(a,np.float)
        print 'in f ',a
a=[1,2]
print 'ori ',a
f(a)
print 'now ',a

I found that “a” was not changed to numpy array after returning from f().

Can somebody give some explanations?

  • 1 1 Answer
  • 0 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-28T01:09:34+00:00Added an answer on May 28, 2026 at 1:09 am

    I see this a lot so it must’ve been already answered but here’s my take.

    The two lines:

    a[0]=3
    

    and

    a=np.array(a,np.float)
    

    do something completely different. The first one doesn’t change what a is — it still is the same list after this line. It merlely sets a new object at index 0 of the list. We say that it mutates it.

    The second line binds a new object to the function’s local a variable. From that point on, a inside the function references a different object. The a outside of the function is completely separate so it still points to the list. Both a‘s simply reference the same object initially.

    You can’t re-bind names outside of the function like this. There are multiple ways to circumvent this, one of them is to return the new object and let the caller bind the return value back to its own a.

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

Sidebar

Related Questions

Possible Duplicate: Read/Write Python Closures In the following function, the internal function does not
Possible Duplicate: True random number generator I have worked with random functions in python,ruby,
Possible Duplicate: Python analog of natsort function (sort a list using a “natural order”
Possible Duplicate: Python timer countdown Hi guys, I want to know about timer in
Possible Duplicate: Unload a module in Python After importing Numpy, lets say I want
Possible Duplicate: get python class parent(s) I have a: class Animal(models.Model): pass class Cat(Aminal):
Possible Duplicate: python limiting floats to two decimal points i want to set 39.54484700000000
Possible Duplicate: Python: sort a part of a list, in place I want to
Possible Duplicate: Python is operator behaves unexpectedly with integers I stumbled upon the following
Possible Duplicate: Python - Determine the type of an object? I want 'complex' to

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.