作者:奶油。 | 来源:互联网 | 2023-07-29 13:29
我有一个只包含字段而没有方法的类,如下所示:
class Request(object):
def __init__(self, environ):
self.environ = environ
self.request_method = environ.get('REQUEST_METHOD', None)
self.url_scheme = environ.get('wsgi.url_scheme', None)
self.request_uri = wsgiref.util.request_uri(environ)
self.path = environ.get('PATH_INFO', None)
# ...
这很容易被翻译成一个字典.该类对于将来的添加更加灵活,并且可以使用__slots__快速进行.那么使用dict会有好处吗?一个dict会比一个班级快吗?比带插槽的课程更快?
解决方法:
你为什么要把它作为字典呢?有什么好处?如果您以后想要添加一些代码会发生什么?你的__init__代码会去哪里?
类用于捆绑相关数据(通常是代码).
字典用于存储键值关系,其中键通常都是相同的类型,并且所有值也是一种类型.有时候,当关键/属性名称并非都是预先知道时,它们可以用于捆绑数据,但这通常表明您的设计出现了问题.
保持这个课程.