Python Forum
is it pythonic to add a name 'attribute' to an existing variable?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
is it pythonic to add a name 'attribute' to an existing variable?
#7
(Oct-04-2021, 09:27 PM)deanhystad Wrote: You obviously are working with classes, because this kind of thing only works for classes, oh, and everything in Python is an object and is associated with a class.

That you can do it means that the run1 object is an instance of a class that allows setting attributes. This is the default behavior for classes, but many of the built-in classes prohibit doing so.

The question here is not if it is Pythonic or not, because adding attributes to objects is about the most Pythonic thing you can do. The question is, "How much do you trust run1?" What is the class/type of run1? Do you have control over this type? How bad would it be for you if the authors of the code that created run1 decided they want run1 to be a closed class like list or string? How bad would it be for you if the authors of the class decided to add an attribute named "name"?

If I was you, and I had no control over the software that produces run1, I would only do things explicitly stated in the API for that software. I would not use variables that are not documented in the API, even if they are not "protected" using the _name convention. I would not use functions that are not documented in the API. I most certainly would not add my own attributes to objects. If you do those kinds of things you may find the next version of that software breaks your code. And if I decided to give into temptation and stuff a name into run1, I would give it a name that is much less generic than "name".

thank you very much!! yes indeed they are all instances of a class but (as a learner), I wasn't sure that (as you say) not being explicitly in control of the class itself would or would not allow me to create attributes as user of this API, or the fact that i was able to was a weird quirk that worked for me, but was actually not really recommended - your answer clears up the confusion! and plenty to think about with future package updates and the potential for renaming and creating attributes on their end!

I shall avoid this practice :) thanks again.
Reply


Messages In This Thread
RE: is it pythonic to add a name 'attribute' to an existing variable? - by amjass12 - Oct-04-2021, 09:33 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Create new variable dependent on two existing variables JoeOpdenaker 6 3,037 Oct-25-2020, 02:15 PM
Last Post: jefsummers
  Assignment of non-existing class variable is accepted - Why? DrZ 6 4,292 Jul-13-2020, 03:53 PM
Last Post: deanhystad
  which is "better" (or more Pythonic)? Skaperen 2 2,062 Feb-01-2020, 03:10 PM
Last Post: Skaperen
  which is "better" (or more Pythonic)? Skaperen 7 3,242 Feb-01-2020, 03:51 AM
Last Post: Skaperen
  which is "better" (or more Pythonic)? Skaperen 8 3,349 Nov-16-2019, 06:46 PM
Last Post: Skaperen
  which is more Pythonic? Skaperen 5 2,868 Jul-16-2019, 01:00 AM
Last Post: Skaperen
  Function Attribute / Global Variable Confusion digitalmatic7 1 5,399 Feb-13-2018, 09:54 AM
Last Post: DeaD_EyE

Forum Jump:

User Panel Messages

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