Python中文
首页
教程
问答
标签
搜索
登录
注册
一个非常大的初始化有什么问题吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在编写一个Python程序,其中有一个用Tkinter模块构建的GUI。我使用一个类来定义GUI,因为它可以更容易地将命令传递给按钮,并使整个过程更易于理解。在</p> <p>我的GUI的实际初始化需要大约150行代码。为了更容易理解,我编写了<code>__init__</code>函数,如下所示:</p> <pre><code>def __init__(self, root): self.root = root self._init_menu() self._init_connectbar() self._init_usertree() self._init_remotetree() self._init_bottom() </code></pre> <p>其中<code>_init_menu()</code>、<code>_init_connectbar()</code>等执行所有初始化工作。这使我的代码更容易理解,并防止<code>__init__</code>变得太大。在</p> <p>但是,这会产生范围问题。因为我在<code>_init_connectbar()</code>中定义的条目小部件在函数范围内,不是类属性,所以我不能在类中的其他方法中引用它。在</p> <p>我可以通过在<code>__init__</code>中执行大部分初始化来消除这些问题,但是我将失去第一个方法获得的抽象。在</p> <p>我应该扩展<code>__init__</code>,还是寻找其他方法将小部件引入类范围?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>要么将这些小部件引用存储在实例变量中,要么返回它们(您希望减少耦合的最小设置),并将它们存储在<code>__init__</code>中的局部变量中,然后将相关引用作为参数传递给后续的构造助手。后者更简洁,但需要足够的解耦,以便创建一个使之成为可能的顺序。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
2 回答
文本小部件:在没有输入时更新并在循环后保持空闲
5 回答
文本小部件tkin
2 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
8 回答
文本小部件tkinter复制图像选项
6 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
6 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
2 回答
文本小部件不显示lis中的内容
1 回答
文本小部件不显示Unicode字符
5 回答
文本小部件中写入的行间距
6 回答
文本小部件中的文本作为变量
10 回答
文本小部件中的滚动条仅显示在底部
1 回答
文本小部件中的选项卡键空间计数
1 回答
文本小部件作为Lis
6 回答
文本小部件在主框架中扩展列宽
9 回答
文本小部件未使用删除功能清除
10 回答
文本小部件滚动动画(Tkinter、Python)
5 回答
文本居中。格式正确吗?
9 回答
文本差分算法
4 回答
文本已知时音频文件中的单词索引
6 回答