user3491700
user3491700

Reputation: 83

Using constructor parameter variable names during object instantiation in Python?

When declaring a new instance of an object in python, why would someone use the names of the variables from the parameters at instatntiation time? Say you have the following object:

class Thing: 
    def __init__(self,var1=None,var2=None):
        self.var1=var1
        self.var2=var2

The programmer from here decides to create an instance of this object at some point later and enters it in the following way:

NewObj = Thing(var1=newVar,var2=otherVar)

Is there a reason why someone would enter it that way vs. just entering the newVar/otherVar variables into the constructor parameters without using "var1=" and "var2="? Like below:

NewObj = Thing(newVar,otherVar)

I'm fairly novice at using python, and I couldn't find anything about this specific sort of syntax even if it seems like a fairly simple/straightforward question

Upvotes: 1

Views: 704

Answers (1)

Alex Telon
Alex Telon

Reputation: 1202

The reason is clarity, not for the computer, but for yourself and other humans.

class Calculation: 
    def __init__(self, low=None, high=None, mean=None):
        self.low=low
        self.high=high
        self.mean=mean

...

# with naming (notice how ordering is not important)
calc = Calculation(mean=0.5, low=0, high=1)

# without naming (now order is important and it is less clear what the numbers are used for)
calc = Calculation(0, 1, 0.5)

Note that the same can be done for any function, not only when initializing an object.

Upvotes: 2

Related Questions