Using __new__

dn PythonList at DancesWithMice.info
Sat Feb 17 21:24:09 EST 2024


On 18/02/24 13:21, Jonathan Gossage wrote:
> The problem is that if you are dealing with a library class, you may 
> have times when the superclass is 'object' while at other times, with a 
> different inheritance hierarchy, the superclass may need arguments. My 
> thought is that the object class __new__ method should not choke on 
> arguments, just ignore them.

All true.

So, what you're looking for is one mechanism to rule them all?

Not going to happen: for exactly the reasons you've stated. If you 
really want to get right 'down into the weeds' with a __new__() 
constructor, then you're well into customisation-territory.

I think it would be 'going nuts' but...
If it 'absolutely, positively, ...' then perhaps introspect the 
super-class and modify the call based-upon whether it is 'something' or 
"object"?
(in similar fashion to the singleton's if-statement attempting to make 
sure it is unique)

- perhaps someone knows a better/proper way to do this?

Suggested research: custom classes, ABCs, and meta-classes...

See also recent improvements to Python which have made it easier for 
sub-classes (and Descriptors - __set_name__() ) to identify 
who/how/where to 'phone home', in case (also) applicable...


> When I talk about 'object', I am talking about the ultimate base class 
> of any inheritance hierarchy.  have seen the class named 'object' called 
> that.

Correct.

The earlier comment was that

     class S( object ):

is 'tradition', and synonymous with:

     class S:

(not disputing the concept of "object" as the base class)


Not correct.

Please see last paragraph from previous message:


> On Sat, Feb 17, 2024 at 7:06 PM dn via Python-list 
> <python-list at python.org <mailto:python-list at python.org>> wrote:
...

>     PS please reply to the list - there may be others who can learn
>     from, or
>     contribute to, this conversation!
...

-- 
Regards,
=dn



More information about the Python-list mailing list