"属性错误:'模块'对象没有属性"排列

时间:2014-08-19 14:42:54

标签: python class-method

这应该是一个垒球问题。

我有一个名为Table的自定义类,其方法包括getTableName

class table(object):
    def __init__(self, tableName, aliasName = 'none'):
        """Create assign a name"""
        self.tableName = tableName
        if aliasName == 'none':
            self.aliasName = tableName
        else:
            self.aliasName = aliasName
        self.columns = []
        self.relatedTables = []
    def getTableName (self):
        return self.tableName

在另一个脚本中,我创建了一个表数组

import table
tables = []

然后我追加表数组。

def appendTables(newTable):
    #check list of tables for match

    #if first batch of tables just append to tables
    if len(tables) == 0:
        tables.append(newTable)
        return
    found = False
    for oTable in tables:
        print "type newTable"  #type newTable
        print type(newTable)   #<class 'table.table'>
        print "type oTable"    #type oTable
        print type (oTable)    #<type 'module'>
        a = newTable.getTableName()  #OK
        b = oTable.getTableName()   #CRASH "AttributeError: 'module' object has no attribute 'getTableName'"

为什么Python无法识别该类?

1 个答案:

答案 0 :(得分:1)

如果在table文件中定义了课程table.py,则需要

from table import table

或使用table.table作为班级名称。此外,按照惯例,用户定义的类名应以大写字母开头,以便您的代码看起来像

class Table(object):

from table import Table

table.Table