Допустим, у меня есть что-то вроде этого -Получение класса переменной пребывает в
class A(object):
c = C()
class B(A):
pass
class C(object):
def __init__(self):
pass
def get_parent_class(self):
# This should return B
Как бы реализовать get_parent_class
, так что он будет работать следующим образом -
B.c.get_parent_class() # Returns the class type B (not the instance b!)
Это возможно даже ?
В основном у меня есть родительский класс (класс A
), который содержит переменную (var c
в примере). Я тогда ребенок-класс (класс B
который наследует A
)
Я хочу использовать функции, которые C
выставляет на B
, но для того, чтобы использовать должным образом, мне нужно C
знать, что это работает на B
(Надеюсь, я не усложнять в последнем объяснении ...)
Edit - Пожалуйста, обратите внимание, что я не пытаюсь получить класс C
, это легко c.__class__
. Мне нужен класс c
Спасибо!
'C = C() 'вызывает исключение, поскольку' C' еще не определен. – falsetru
Возможный дубликат [Получение имени класса экземпляра в Python] (http://stackoverflow.com/questions/510972/getting-the-class-name-of-an-instance-in-python) – Stiffo
@Stiffo: не дублирующийся OP хочет имя класса класса *, содержащего * c, а не имя класса C или его родителя. –