Georg Brandl wrote:
> Chaz Ginger wrote:
>> glenn wrote:
>>>> Shouldn't that be
>>>>
>>>> beagle = animal.dog()
>>>>
>>>> to create an instance?
>>>>
>>>> We've all done it ...
>>> lol - actually Im confused about this - there seem to be cases where
>>> instantiaing with:
>>> instance=module.classname()
>>> gives me an error, but
>>> instance=module.classname
>>> doesnt - so I got into that habit, except for where I had a constructor
>>> with parameters - except now Im feeling foolish because I cant
>>> replicate the error - which suggests I didnt understand the error
>>> message properly in the first place... arrgh
>>> I guess thats just part of the process of gaining a new language.
>>>
>>> glenn
>>>
>>
>> module.classname and module.classname() are two different things. If
>> you use module.classname() you invoke the __new__ and __init__ methods
>> in the class, and you might get an error from them.
>>
>> On the other hand module.classname will always work, assuming
>> classname really exists in module. What you get back is a sort of
>> reference to the class itself and not an instance of it.
>
> It is not a sort of reference to the class, it is *the class itself*.
>
> >>> class A:
> ... pass
> ...
> >>> A
> <class __main__.A at 0xdeadbeef>
> >>>
>
> Georg
A reference by any other name still smells as sweet! lol.
--
http://mail.python.org/mailman/listinfo/python-list