python类的方法

时间:2018-10-04 16:40:18

标签: python methods attributes hierarchy

由于我是python的新手,所以我可能会问一个明显或愚蠢的问题,但我真的很想学习这个概念。

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



instance = Classname()

instance.method_1.method_of_1.method_n

我的问题是,此语法是否暗示method_1method_of_1method_n确实是Classname的方法或属性。如果它们是方法,则不应将它们作为instance.method_1().method_of_1().method_n()来调用。 我问这个的原因是因为这种语法在例如Matplotlib,您有ax.yaxis.set_ticks()。最后一个示例是否表示我们正在访问名为ax的{​​{1}}属性,然后调用方法yaxis。因此语法暗示:set_ticks()。 您如何建立这样的层次结构?你能指导我去写作的地方读书吗?我会自己做,但不知道我到底在看什么。我读过有关类的信息,但没有看到带有两个或多个“点”的任何内容,例如classname.attribute.method

1 个答案:

答案 0 :(得分:0)

不熟悉Matplotlib,但可能会有类似的子类:

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

您可以在其中调用Foo.Bar.hello()并显示“世界”。

这可以无限进行。由于Python是基于对象的,因此不一定遵循固定的结构。