Python中文
首页
教程
问答
标签
搜索
登录
注册
使用dict代替class
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我不明白什么时候应该在Python上使用字典而不是类。如果一个类可以做与词典相同的事情,那么我们为什么要使用词典呢?例如,下面两个代码段的作用相同:</p> <p>使用类:</p> <pre><code>class PiggyBank: def __init__(self, dollars, cents): self.dollars = dollars self.cents = cents piggy1 = PiggyBank(2, 2) print(piggy1.dollars) # 2 print(piggy1.__dict__) # {'dollars': 2, 'cents': 2} </code></pre> <p>使用字典:</p> <pre><code>def create_piggy(dollars, cents): return {'dollars': dollars, 'cents': cents} piggy2 = create_piggy(2, 2) print(piggy2['dollars']) # 2 print(piggy2) # {'dollars': 2, 'cents': 2} </code></pre> <p>最后,我创建了两个具有相同信息的静态对象。我应该在什么时候使用类或函数来创建实例</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果字典满足您的用例,并且您没有被迫使用类,那么您可以使用字典。但若你们需要一些额外的类的好处(如下面),你们可以写的是类</p> <p>当您可能需要类时的一些用例</p> <ul> <li>当您需要频繁更新代码时</li> <li>当你需要封装的时候</li> <li>当您需要重用相同的接口、代码或逻辑时</li> </ul>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
5 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
9 回答
我是否正确理解Keras中的批次大小?
5 回答
我是否正确理解PyTorch的加法和乘法?
1 回答
我是否正确组织了我的Django应用程序?
10 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
1 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
7 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
10 回答
我是否用python安装了socks模块?
4 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
4 回答
我是否缺少spaCy柠檬化中的预处理功能?
6 回答
我是否缺少给定状态下操作的检查?
9 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
1 回答
我是否能够使用用户输入作为colorama模块中的颜色?
5 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
4 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
4 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
1 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
9 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
5 回答
我是否要使它成为递归函数?
3 回答