Давайте предполагать, что у меня есть такой класс:
class Hola(object):
NOMBRE = 'hola'
def muestro_cosas(self):
print('Mi nombre es {}'.format(Hola.NOMBRE))
class HolaPequenito(Hola):
NOMBRE = 'hola_pequenito'
...
Как видно, HolaPequenito
это субкласс Hola
.
Сейчас, я реализую осуществление вещей, в которых я нуждаюсь в том, чтобы использовать переменную класса NOMBRE
.
Hola
, я сделаю print (Hola.NOMBRE)
.HolaPequenito
, я сделаю print (HolaPequenito.NOMBRE)
.Однако, есть разы, в которых я не знаю, ли буду я instanciando Hola
или HolaPequenito
, так как instancío dinámicamente внутри большого процесса, в котором я нуждаюсь в том, чтобы узнать стоимость NOMBRE
класса, который есться instanciado, и делать что-то подобное:
class Hola(object):
NOMBRE = 'hola'
def comprueba_cosas(self):
if NOMBRE == 'hola': # aquí debo usar la variable de clase
...
elif NOMBRE == 'hola_pequenito':
...
А именно: если instancío Hola
или HolaPequenito
не зная, которая из двух я instanciando: как я могу соглашаться на переменную класса NOMBRE
соответствующая, чтобы делать какую-то эвристику?
Больше я достиг он состоял в том, чтобы определять метод класса, который возвращал бы это мне:
class Hola(object):
NOMBRE = 'hola'
@classmethod
def bah(cls):
return cls.NOMBRE
Но я не знаю, как сочетать это, чтобы работать с переменной класса NOMBRE
внутри метода.