-2

我正在自学python,而且我对面向对象语言完全陌生。我一直在阅读有关此的书籍和互联网,但我意识到编码是最佳实践。我正在这样做,但正在努力解决以下问题:

我的程序可以以几乎任何可能的方式构建类,还是有限制(例如在类之间来回引用函数和变量)?理论上可以以任何方式将程序分解为类吗?例如:一个简单的带有 Tkinter 的文本编辑器:菜单栏的创建,我在其中加载一个文本文件的内容,可以放在一个类中,并有另一个类与文本字段的创建?

我很挣扎,因为显然首先创建了文本字段或菜单栏。但是来自菜单(加载文件)的内容被发送/插入到文本字段中。所以菜单必须是第一位的。另一方面,文本在保存到文件之前出现(在菜单类中)。

我错过了什么?

我真的很希望能得到你的帮助。

4

2 回答 2

1

感谢您在这篇文章中提出的想法。您可以按照您建议的任何方式构建您的程序,这完全取决于您的偏好。

至于您的文本编辑器问题,首先创建哪个类并不重要 - 当您需要它们时,它们仍然可以在那里,如果它们连接正确,那么一个可以将信息传递给另一个。

相信我,你编码的越多,这一点就越明显。祝你好运:-D

于 2013-05-01T10:24:30.003 回答
0

在构建代码时没有这样的限制。但是,请记住以下几点:

  1. 您要引用的任何对象都必须在使用之前创建。
  2. 在 Python 中,两个同名的东西会相互覆盖,并且只会使用最新的。
  3. 方法在调用时执行,而不是在创建时执行。

这是#2的示例:

def foo(bar):
    print(bar)
    return 42
def foo(bar):
    print(bar)
    return 'The answer to the universe'

print foo('The question')

在上面的代码片段中,只有第二个函数定义是有效的,它将被执行。这是因为方法名称就像 Python 中的任何其他名称一样。它们可以被分配、重新分配和覆盖。

稍后,您可以foo = 'Python'并且完全没问题。

当您开始开发时,这将变得更加明显。

于 2013-05-01T10:36:10.940 回答