Как использовать строку, содержащую имя класса, для ссылки на сам класс?
Смотрите это (не работает) Exemple ...Python: ссылка на класс из строки?
class WrapperClass:
def display_var(self):
#FIXME: self.__class_name__.__name__ is a string
print self.__class__.__name__.the_var
class SomeSubClass(WrapperClass):
var = "abc"
class AnotherSubClass(WrapperClass):
var = "def"
И очевидно, сообщение об ошибке:
>>> b = SomeSubClass() >>> b.display_var() Traceback (most recent call last): File "", line 1, in File "", line 4, in display_var AttributeError: 'str' object has no attribute 'the_var' >>>
Спасибо!
+1 красиво объяснено –
hmmm: «переменная« X »будет ссылкой« Не совсем ». Идентификатор «X» является объектом класса и может использоваться везде, где будет использоваться константа. –
Действительно. То, что я пытаюсь описать в неуклюжем английском, состоит в том, что, хотя X - объект класса, это действительно просто ссылка; если вы присвоили что-то еще «X», то этого больше не будет. Важным моментом является то, что в Python имя «X» не становится особенным; это просто другая переменная. – bobince