关于Sentdex matplotlib教程代码中F变量及方括号语法的疑问
问题解答
1. 代码第10行F(container, self)中F的含义
这里F是for循环的迭代变量,依次遍历元组(StartPage, PageOne, PageTwo)里的三个元素。这三个元素都是提前定义好的、继承了tkinter Frame的自定义页面类,所以F(container, self)本质就是调用对应页面类的构造方法,传入父容器container和主应用实例两个参数,生成对应页面的实例对象。
2. 代码第11行self.frames[F]的相关疑问
F的含义和上一问完全一致,就是当前循环迭代到的页面类- 方括号是Python字典的标准赋值语法:代码第8行已经定义了
self.frames = {},这是一个空字典。self.frames[F] = frame的作用就是把页面类作为键(key)、把刚生成的对应页面实例作为值(value),存入这个字典,方便后续快速查找调用。
3. 代码第15行self.frames[cont]用方括号的原因
这里方括号还是Python字典的取值语法:cont是show_frame方法的入参,调用这个方法时传入的是StartPage这类页面类,用self.frames[cont]就能直接从之前存的字典里,把对应页面的实例取出来,之后调用tkraise()方法把页面提到最上层显示,实现多页面切换的效果。
内容的提问来源于stack exchange,提问作者FragThemBoshKidz
相关产品推荐
相关产品推荐

