(非)添字可能オブジェクトとは何かに関するスレッドを読みましたが、それについて何ができるかはわかりません。
mypostプライベート モジュールを呼び出すコードがあります。目的は、メール アカウントを設定することです。これを行うには、モジュールMailAccounts()で定義されたオブジェクトを作成します。mypostアカウントの数とそれぞれの詳細は、構成ファイルに記述されています。アプリケーションが起動すると、アカウント情報が収集され、ディクショナリに保存されます。その構造は次のとおりです。「gmail」はどこaccounts = {service : { <MailAccounts Object at xxxxx> : {username : myusername, password : mypassword}}}で、モジュールで定義されたクラスはどこです。ここまでは順調ですね。ただし、アカウントをセットアップしたい場合は、そのメソッドを呼び出す必要があります: . これを行うには、辞書の各 MailAccount オブジェクトを反復処理し、メソッドの実行を要求します。serviceMailAccountsmypostMailAccounts.setupAccount(username, password)
for service in accounts:
for account in accounts[service]:
account.setupAccount(account['username'], account['password'])
しかし、ご想像のとおり、うまくいきませんでした。Python は次のように返します。
TypeError: 'MailAccount' object is not subscriptable
ただし、同じアカウントを手動で作成すると機能します:
account = MailAccount()
account.setupAccount('myusername', 'mypassword')
今、私はそれが<MailAccount Object at xxxx>辞書のキーであるという事実と関係があると思いますよね?それはそれを添字不可にします(それが何を意味するにせよ)?
いいえ、添字不可とは正確にはどういう意味ですか? この例では何を意味しますか? そしてもちろん、この場合、どうすればこれを解決/回避できますか?
ありがとう、ベンジャミン:)