由于我是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
的{{1}}属性,然后调用方法yaxis
。因此语法暗示:set_ticks()
。
您如何建立这样的层次结构?你能指导我去写作的地方读书吗?我会自己做,但不知道我到底在看什么。我读过有关类的信息,但没有看到带有两个或多个“点”的任何内容,例如classname.attribute.method
。
答案 0 :(得分:0)
不熟悉Matplotlib
,但可能会有类似的子类:
class Foo():
a = 1
class Bar():
b = 2
def hello():
print('world')
您可以在其中调用Foo.Bar.hello()
并显示“世界”。
这可以无限进行。由于Python是基于对象的,因此不一定遵循固定的结构。