我有一个只包含字段而不包含方法的类,如下所示:
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 会有好处吗?字典会比类更快吗?并且比带插槽的课程更快?
除非您需要类的额外机制,否则请使用字典。您还可以使用namedtuple http://docs.python.org/dev/library/collections.html#collections.namedtuple对于混合方法:
>>> from collections import namedtuple
>>> request = namedtuple("Request", "environ request_method url_scheme")
>>> request
<class '__main__.Request'>
>>> request.environ = "foo"
>>> request.environ
'foo'
这里的性能差异将是最小的,尽管如果字典不是更快的话我会感到惊讶。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)