New GitHub issue #118538 from Atry:<br>

<hr>

<pre>
# Bug report

### Bug description:

```python
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> class MyOuterClass:
...     class MyInnerClass:
...         pass
... @staticmethod
...     def public_inner():
...         return __class__.MyInnerClass()
...     class __MyInnerClass:
... pass
...     @staticmethod
...     def private_inner():
...         return __class__.__MyInnerClass()
... 
>>> import pickle
>>> pickle.dumps(MyOuterClass.public_inner())
b'\x80\x04\x95-\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x19MyOuterClass.MyInnerClass\x94\x93\x94)\x81\x94.'
>>> pickle.dumps(MyOuterClass.private_inner())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
_pickle.PicklingError: Can't pickle <class '__main__.MyOuterClass.__MyInnerClass'>: attribute lookup MyOuterClass.__MyInnerClass on __main__ failed
```


### CPython versions tested on:

3.12

### Operating systems tested on:

Linux
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/118538">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>