классы Python методы методов - PullRequest
0 голосов
/ 04 октября 2018

, так как я довольно новичок в python, я, возможно, задаю очевидный или глупый вопрос, но я действительно хочу изучить эту концепцию.

class Classname:
     def method_1(self):
        ........
      ...................



instance = Classname()

instance.method_1.method_of_1.method_n

Мои вопросы, если этот синтаксис подразумевает method_1,method_of_1 и method_n действительно являются методами или атрибутами Classname.Если они являются методами, они не должны вызываться как instance.method_1().method_of_1().method_n().Я спрашиваю об этом потому, что этот синтаксис часто встречается, например, в Matplotlib, где у вас есть ax.yaxis.set_ticks().Означает ли этот последний пример, что мы обращаемся к атрибуту ax с именем yaxis, а затем вызываем метод set_ticks().Таким образом, синтаксис подразумевает: classname.attribute.method.Как вы строите такую ​​иерархию?Можете ли вы направить меня в место для чтения?Я бы сделал это сам, но не знаю, что именно я ищу.Я читал о классах, но ничего не видел с двумя или более «точками», например, classname.attribute.method.

1 Ответ

0 голосов
/ 04 октября 2018

Не знаком с Matplotlib, но возможно иметь подклассы, такие как:

class Foo():
    a = 1
    class Bar():
        b = 2
        def hello():
             print('world')

, где вы можете вызвать Foo.Bar.hello(), и он напечатает "world".

Это может продолжаться до бесконечности.Поскольку Python основан на объектах, он не обязательно следует заданной структуре.

...