Python Forum
how to return a reference to an object?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
how to return a reference to an object?
#1
i have a collection of object references in a dict inside a function. i want to have a function that can use give arguments, find the object, and return a reference to it. i am drawing a blank trying to think this up. i want to have the caller increment the number if it's type is int or float and do nothing for anything else. nothing is coded, yet.
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply
#2
What do you mean by object references? A name that the object has been assigned to or something else? Can you show how your dict is constructed?
Reply
#3
no code, yet. nothing to show. i have not decided how to construct the dict. i could use a list or two if i need to. suggestions?
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply
#4
(Jun-06-2023, 02:16 AM)Skaperen Wrote: suggestions?
Just return the object. Python always returns objects by reference.
Reply
#5
(Jun-06-2023, 08:44 AM)Gribouillis Wrote:
(Jun-06-2023, 02:16 AM)Skaperen Wrote: suggestions?
Just return the object. Python always returns objects by reference.

i want to increment the object. i can do this when i get it directly from a dict like so:
cars_per_train[which_train] += 1 # one car passes by so count it.
if i make a different function to do the increment, i can make work. but i want to have it all done with one function that simply returns the object by its key (which_train).
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply
#6
(Jun-07-2023, 01:06 AM)Skaperen Wrote: i want to increment the object. i can do this when i get it directly from a dict like so:
cars_per_train[which_train] += 1 # one car passes by so count it.

If the value in that dict is an immutable object (like an int), then you can't really increment that object. Instead, a different object will be assigned to that key in the dict. As such, it's unclear if you really want just the int object, as it cannot be changed.

If the value is mutable, then incrementing is possible. In that case, just return the value.
Reply
#7
If the object is immutable, it cannot be "passed by reference". No changes can be made to the object, so any operation, like incrementing, creates a new object. If the object is mutable, it is always "passed by reference". Changes made to the object will be seen by anyone who references the object.

Sounds like you need to create a mutable object that behaves like a number, at least some of the time, but can have it's "value" changed.
Reply
#8
(Jun-07-2023, 01:06 AM)Skaperen Wrote: f i make a different function to do the increment, i can make work. but i want to have it all done with one function that simply returns the object by its key (which_train).
Please describe the whole problem with the cars and the trains and what each function should do (detailed arguments, effect, return value). You make us guess both the problem and the solution. Frankly I still don't understand what you want to do and why.
buran likes this post
Reply
#9
(Jun-07-2023, 04:37 AM)Gribouillis Wrote:
(Jun-07-2023, 01:06 AM)Skaperen Wrote: f i make a different function to do the increment, i can make work. but i want to have it all done with one function that simply returns the object by its key (which_train).
Please describe the whole problem with the cars and the trains and what each function should do (detailed arguments, effect, return value). You make us guess both the problem and the solution. Frankly I still don't understand what you want to do and why.

i want to avoid writing code that accesses the dict directly and, instead, wrap the dict with an API.
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  This result object does not return rows. It has been closed automatically dawid294 6 1,088 Mar-30-2024, 03:08 AM
Last Post: NolaCuriel
Exclamation win32com: How to pass a reference object into a COM server class Alfalfa 3 4,903 Jul-26-2021, 06:25 PM
Last Post: Alfalfa
  Pass by object reference when does it behave like pass by value or reference? mczarnek 2 2,571 Sep-07-2020, 08:02 AM
Last Post: perfringo
  isinstance() always return true for object type check Yoki91 2 2,579 Jul-22-2020, 06:52 PM
Last Post: Yoki91
  Object reference in Dict - not resolved at runtime benthomson 2 1,849 Apr-02-2020, 08:50 AM
Last Post: benthomson
  set a new object node in a linked list via reference oloap 2 2,108 Mar-13-2020, 09:45 PM
Last Post: oloap
  Return a value when I equal an object from a class ihouses 4 2,994 Jul-10-2019, 02:44 AM
Last Post: SheeppOSU
  TypeError: cannot create weak reference to 'str' object Harryjduke 2 8,665 Mar-09-2019, 04:59 PM
Last Post: Harryjduke
  Return Object Created from Multiple Classes emerger 3 3,078 Oct-18-2018, 02:14 AM
Last Post: emerger

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020