首页 > 解决方案 > Python 没有调用这个函数,我不知道为什么

问题描述

试图让这段代码工作,它没有在我的课堂上调用我的“makeDictionary”函数。我不知道为什么。有什么想法吗?

from StringCount import *

def main():
    products = StringCount()
    doc = input("Enter File Location: ")
    doc_object = open(doc, "r").read()
    items = doc_object.split()

    products.makeDictionary(items)

    itemList = products.sortItems()

    print(f"{'Product':^15}{'Quantity':^10}")
    print("-" * 25)
    for p in range(len(itemList)):
        item, count = itemList[p]
        print(f"{item:<15}{count:>10}")

if __name__ == "__main__":
    main()

编辑:对于垃圾帖子感到抱歉,我仍在努力解决所有问题。这是我的课程代码。

from operator import itemgetter

class StringCount:
    def __init__(self):
        self.notes = {}
        self.key = []
        self.value = []

    def makeDictionary(self, items):
        for item in items:
            item.strip('')
            if item == int:
                self.value.append(item)
            if item == str:
                self.key.append(item)
        for i in range(len(self.key) and len(self.value)):
            self.notes[self.key[i]] = self.value[i]

编辑#2:好的,所以要澄清我的问题。我不是在寻找关于课堂的澄清。在 python 中运行这个程序,我输入文件位置,它完全跳过了 'makeDictionary' 方法。现在我只是不明白为什么,我相信有一个小原因。如果有人可以提供帮助,将不胜感激。

标签: pythonpython-3.x

解决方案


正如@jasonharper 指出的那样,

if item == int:

不会工作。而是使用

if isinstance(item, int):

str 同样的事情


推荐阅读