Python __attrs__解释道

Ugu*_*gur 10 python

我正在浏览requestsKenneth Reitz 的Python 库代码(真棒!).我遇到了一个名为的Class变量__attrs__(见下文).试图通过谷歌和SymbolHound找到它的一些东西,但没有运气.

这是标准的Python吗?我在哪里可以找到更多信息?有人可以开导我吗?

来自:https://github.com/kennethreitz/requests/blob/master/requests/sessions.py

class Session(SessionRedirectMixin):
    ...

    __attrs__ = [
        'headers', 'cookies', 'auth', 'proxies', 'hooks', 'params', 'verify',
        'cert', 'prefetch', 'adapters', 'stream', 'trust_env',
        'max_redirects',
    ]

    def __init__(self):

        #: A case-insensitive dictionary of headers to be sent on each
        #: :class:`Request <Request>` sent from this
        #: :class:`Session <Session>`.
        self.headers = default_headers()
Run Code Online (Sandbox Code Playgroud)

use*_*ica 17

这不是标准的Python事情.据我所知,它只是__getstate__在课程中使用的方法:

def __getstate__(self):
    state = dict((attr, getattr(self, attr, None)) for attr in self.__attrs__)
    state['redirect_cache'] = dict(self.redirect_cache)
    return state
Run Code Online (Sandbox Code Playgroud)

这个名称__attrs__是一个糟糕的选择,因为名称的开头和结尾__是为核心Python语言功能保留的.