Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Python C-API: how to define nested classes?

13 views
Skip to first unread message

Stefan Behnel

unread,
May 17, 2013, 1:16:25 AM5/17/13
to pytho...@python.org
Serge WEINSTOCK, 16.05.2013 10:55:
> I'm currently writing a C extension module for python using the "raw" C-API. I would like to be able to define "nested classes" like in the following python code
>
> ============================================================
> class A:
> class B:
> def __init__(self):
> self.i = 2
> def __init__(self):
> self.b = A.B()
> a = A()
> b = A.B()
> print(a.b.i)
> print(b.i)
> ============================================================
>
> How can I create such nested class with the C-API?

Assuming you really mean Python classes and not extension types, you might
get away with defining them separately and then assigning

A.B = B

Recent Python versions added a __qualname__ attribute for classes that you
might want to fix up in this case.

If you need better compatibility, consider writing your code in Cython.

Stefan


0 new messages