The right way to 'call' a class attribute inside the same class
Erik
python at lucidity.plus.com
Sat Dec 17 20:01:10 EST 2016
On 16/12/16 01:17, Chris Angelico wrote:
> On Fri, Dec 16, 2016 at 11:36 AM, Erik <python at lucidity.plus.com> wrote:
>> On 12/12/16 23:23, Chris Angelico wrote:
>>>
>>> In JavaScript, it's normal to talk about "calling a function as a
>>> constructor". When you do, there is a 'this' object before you start.
>>
>>
>> No there isn't. There is an implicit binding of a variable called "this"
>> based on the syntactic sugar of whether you're calling a function as method
>> on an object or not.
>>
>> In "strict" mode, [blah, blah, blah]
> I'm talking about when you call a function as a constructor: "new
> Foo()". Doesn't that have a 'this' object before the function starts?
Yes, in that case there is (I didn't grok that you meant using 'new' by
"calling a function as a constructor", but it's obvious now you spell it
out).
I wish I could find the resource I originally learned this stuff from,
because it's quite enlightening and I'd like to link to it here - if one
understands how things work generally under the covers it all makes much
more sense, but I guess that's also a bad advert for a language (and why
a lot of people get confused at first, and why it's a bit of a mess ;)).
But yes you're correct, in the case of using "new Func()" then "Func" is
called with an implicit binding of 'this' that is to a newly created object.
Regards,
E.
More information about the Python-list
mailing list