Python中文
首页
教程
问答
标签
搜索
登录
注册
Python:如何处理不可订阅的对象?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我读过<a href="https://stackoverflow.com/questions/216972/in-python-what-does-it-mean-if-an-object-is-subscriptable-or-not">a thread on what a (non)subscriptable object is</a>但它没有告诉我我能做些什么。</p> <p>我有一个调用<code>mypost</code>私有模块的代码。目的是设置邮件帐户,并为此创建在<code>mypost</code>模块中定义的<code>MailAccounts()</code>对象。账户数量及其各自的详细信息在配置文件中描述。当应用程序启动时,它收集帐户信息并将其存储在字典中,字典的结构是:<code>accounts = {service : { <MailAccounts Object at xxxxx> : {username : myusername, password : mypassword}}}</code>,其中<code>service</code>可以是“gmail”,其中<code>MailAccounts</code>是在<code>mypost</code>模块中定义的类。 到现在为止,一直都还不错。当我想设置帐户时,我需要调用它的方法:<code>MailAccounts.setupAccount(username, password)</code>。我通过迭代字典的每个MailAccount对象并请求运行方法来完成此操作:</p> <pre><code>for service in accounts: for account in accounts[service]: account.setupAccount(account['username'], account['password']) </code></pre> <p>但正如您可能已经猜到的,Python返回:</p> <p><code>TypeError: 'MailAccount' object is not subscriptable</code></p> <p>如果我手动创建相同的帐户,但它仍然有效:</p> <pre><code>account = MailAccount() account.setupAccount('myusername', 'mypassword') </code></pre> <p>现在我相信这与我的<code><MailAccount Object at xxxx></code>是字典键是不是有关?这使得它不可订阅(无论这意味着什么)?</p> <p>不,这到底意味着什么是不可订阅的?在这个例子中它意味着什么?当然,在这种情况下,我如何解决/绕过这个问题?</p> <p>谢谢, 本杰明:)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>解决这个问题的方法是正确使用词典。</p> <pre><code>for service in accounts: for account, creds in accounts[service].iteritems(): account.setupAccount(creds['username'], creds['password']) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
想用靓汤抢夺价值
4 回答
想申请一份符合工作描述的简历吗
8 回答
想画网格,Python
3 回答
想白痴化我的Python战舰
2 回答
想看两列日期,但只上
2 回答
想看看我写的这个脚本读一个Fortran二进制fi吗
8 回答
想知道Django是如何实现ORM查询优化的吗
6 回答
想知道GeoDjango和地图服务吗
6 回答
想知道Image.resize操作在PIL文件中的详细工作方式吗
10 回答
想知道matplotlib pyplot为什么不调整边距
7 回答
想知道matplotlib颜色的颜色代码吗
1 回答
想知道pd.factorize,pd.get_dummies,sklearn.preprocessing.labeencoder和OneHotEncod之间的区别
5 回答
想知道property()在python中的实际用法吗
5 回答
想知道pyodidejs是如何工作的吗?
1 回答
想知道pyparsing==2.0.1的已完成处理依赖关系
2 回答
想知道ScikitLearn中的编码算法吗
10 回答
想知道VTK 5.04和VTK 5.4.2的vtkMassProperties差异吗
5 回答
想知道一个特定字符在一个特定句子中出现的次数吗
7 回答
想知道两个不同子集的重叠中有多少个对象吗
7 回答
想知道为什么is_素数函数的结果不正确吗
2 回答