【问题标题】:Python Error: Why doesn't python recognize my object's type?Python 错误:为什么 python 不能识别我的对象类型?
【发布时间】:2014-06-27 16:15:44
【问题描述】:
class Network():
    tables = []
def readInFile():
    network = Network()
def printThing(network):
    print(len(network.tables))
def main():
    network = readInFile()
    printThing(network)
if __name__ == "__main__":
    main()

给出错误: 文件“thing.py”,第 6 行,在 printThing 打印(len(network.tables)) AttributeError: 'NoneType' 对象没有属性 'tables'

但是对象网络不是NoneType,它在readInFile函数中实例化时显然是Network()类型,并且Network()类型具有属性表!请帮忙,谢谢

【问题讨论】:

  • 虽然与您最初的问题无关,但通常不建议将可变对象的属性(例如您的 Network.tables)作为类属性。您可能需要考虑使用实例属性。见:stackoverflow.com/q/13482727/748858

标签: python oop


【解决方案1】:

你需要从你的函数中返回一些东西。除非您的函数中有 return 语句,否则它将返回 None

class Network():
    tables = []

def readInFile():
    return Network()

def printThing(network):
    print(len(network.tables))

def main():
    network = readInFile()
    printThing(network)

if __name__ == "__main__":
    main()

【讨论】:

    【解决方案2】:

    您的函数 readInFile() 没有返回语句,因此总是返回 None。

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多