On Fri, Apr 22, 2022 at 10:09:33PM -0700, Larry Hastings wrote:

[Larry]
> >>To be clear: `forward class` creates the official, actual class object.
> >>Code that wants to take a reference to the class object may take 
> >>references
> >>to the `forward class` declared class, and interact with it as normal.
> >>However, a class created by `forward class` can't be *instantiated*
> >>until after the matching `continue class` statement finishes.

[Steve (me)]
> >Since the "forward class" is a real class,
> 
> It's a "forward-declared class object".  It's the real class object, but 
> it hasn't been fully initialized yet, and won't be until the "continue 
> class" statement.

The only thing that makes it not fully initialised is that it has a bozo 
bit dunder "__forward__" instructing the interpreter to disallow 
instantiation. Yes?

If I take that class object created by `forward class X`, and delete the 
dunder, there is no difference between it and other regular classes. Am 
I correct?

So your reasoning is circular: you give it a dunder marking it as a 
"forward-declared class object" to prevent it from being instantiated, 
but the only reason it can't be instantiated is that it has the dunder. 

I won't respond to the rest of your post until you have clarified the 
above, in case I have misunderstood.


-- 
Steve
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/B7BZDPTWQTZ67PO7AB2BPOBJRDKAFCDZ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to