Почему метакласс python не работает в этом коде? - PullRequest
0 голосов
/ 28 сентября 2019
class My_meta(type):

    def hello(cls):
        print("hey")

class Just_a_class(metaclass=My_meta):
    pass

a = Just_a_class()
a.hello() 

Приведенный выше код дает:

AttributeError: у объекта 'Just_a_class' нет атрибута 'hello'

Пожалуйста, предложите изменения, чтобы заставить его работать.Спасибо.

1 Ответ

1 голос
/ 28 сентября 2019

Методы в метаклассе наследуются объектом класса, а не экземплярами класса.Вы можете вызвать функцию следующим образом:

Just_a_class.hello()
// or
a = Just_a_class()
a.__class__.hello()
...