在python中组织类,有什么可能吗?

时间:2013-05-01 10:18:19

标签: python class tkinter

我正在教自己python,我是面向对象语言的新手。 我一直在阅读有关这方面的书籍和互联网,但我意识到编码是最好的做法。我这样做,但努力与以下:

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

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

我错过了什么?

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

2 个答案:

答案 0 :(得分:1)

赞成这篇文章的想法。你可以用你建议的任何方式构建你的程序,这都是一个偏好问题。

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

相信我,你的代码越多,它就越明显。祝你好运:-D

答案 1 :(得分:0)

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

  1. 在使用之前,必须先创建要引用的任何对象。
  2. 在Python中,两个同名的东西会互相覆盖,只会使用最新的。
  3. 方法在被调用时执行,而不是在创建时执行。
  4. 以下是#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',这是完全可以的。

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