3

MyClass と MyClass2 の 2 つのクラスがあります。MyClass では、ファイルを取得し、そのファイルのすべての単語を返しました。MyClass2 では、MyClass を継承し、基本的にすべての単語を値として単語の頻度と共に辞書に格納するコードを作成しました。私がすでにテストした最初のクラスでは、すべての単語を返すことができました。MyClass2 正しく書いたと思っていたのですが、MyClass を正しく継承していないか、iterメソッドの書き方が間違っているようです。コードを実行しようとするたびに、エラーが返されます。 これは宿題なので (また、不正行為だと思われたくない..) 質問に答える必要がない限り、すべてのコードを投稿しませんし、誰かが書き直したり完全に修正したりすることも期待しません。私のコード。コンストラクターが間違っているかどうか、コード全体が間違っているかどうか、またはコードを正しくフォーマットしておらず、クラスを間違って継承しているかどうかについてのガイダンスが必要です...? 私はPythonが初めてで、助けが必要です。

from myclass import MyClass
class MyClass2(MyClass):
      def __init__(self, Dict):    #Is the problem within the constructor?
          self.Dict = Dict
          Dict = {}
      def dict(self, textfile):
          text = MyClass(textfile)    #Was I wrong here??
          ..................
              ..............
              ..............
              return self.Dict
      def __iter__(self):
          for key, value in self.Dict.items():
              yield key, value

テスト コードを実行すると、次のようなエラーが表示されます。

AttributeError: 'MyClass2' object has no attribute 'items'

足りない情報や不足している情報があれば教えてください。

与えられたこのコードを使用してテストしました:

filename = MyClass1('name of file')
y = MyClass2(filename)
for x in y:
    print x

トレースバックは次のとおりです。

Traceback (most recent call last):
File "C:\myclass.py", line 25, in <module>
  for x in y:
File "C:\myclass2.py", line 19, in __iter__
  for key, value in self.Dict.items():
AttributeError: 'MyClass2' object has no attribute 'items'
4

1 に答える 1