2

我搜索了其他有类似问题的线程,但我没有找到答案。基本上,我有一堂课:

import Android_Class

class Android_Revision(object):

    def __init__(self):
        # dict for storing the classes in this revision
        # (format {name : classObject}):
        self.Classes = {}
        self.WorkingClass = Android_Class()
        self.RevisionNumber = ''

    def __call__(self):  
        print "Called"

    def make_Class(self, name):
        newClass = Android_Class(name)
        self.Classes.update({name : newClass})
        self.WorkingClass = newClass

    def set_Class(self, name):
        if not(self.Classes.has_key(name)):
            newClass = Android_Class(name)
            self.Classes.update({name : newClass})
        self.WorkingClass = self.Classes.get(name)

我正在尝试创建此类的实例:

Revision = Android_Revision()

那就是我收到错误的时候。我很困惑,因为我有另一种情况,我正在做几乎完全相同的事情,而且工作正常。我无法弄清楚两者之间的差异会导致此错误。谢谢。

4

1 回答 1

3

我支持评论,这个问题缺乏重要信息,如果这个错误不是非常常见并且有相当明显的症状,我将无法提供任何类似答案的东西。

Python 对 {files,modules} 和类的看法与 Java 完全不同。模块是比类更高级别的组织单元。具体来说,一个模块可以包含任意数量的类(以及许多其他的东西)。import处理模块,而不是类。import foo为您提供该名称的模块,而不管该名称的任何类。如果您必须在同名模块中有一个类(通常,这是过度使用类或忽略模块作为组织单位的标志),您可以访问它,也可以Foo.Foo使用from Foo import Foo.

顺便说一句,模块名应该是lower_case,而类名应该是PascalCase. 不要将两者混为一谈。另请阅读PEP 8了解其他约定。

于 2012-10-08T03:34:08.020 回答