How do I use value of one method in another. I am getting AttributeError: 'A' object has no attribute 'auth_header'

How do I use value of one method in another. I am getting AttributeError: 'A' object has no attribute 'auth_header'

这是我的代码(单class一个)

class A(page):

   def test_auth(self):
       params = {
           'email': 'zzzm',
           'password': 'yyyy',
       }

       response = self.send_request(self.request_auth,
                                         request_type=self.request_type_post,
                                         headers=self.header_content_type_x_www_form_urlencoded,
                                         data=params,
                                         need_headers=True)

       auth_header = {'Authorization': f"Bearer {response['headers']['x-api-token']}"}

使用上面生成的授权码获取配置文件的方法

def test_profile(self):
    auth_header = self.auth_header
    response = self.send_request(self.request_profile,
                                         auth=auth_header,
                                         headers=self.header_accept_json
                                         )

我得到的错误是 AttributeError: 'A' object has no attribute 'auth_header'

谁能帮助我如何在相同 class 的另一个方法中使用第一个方法中生成的值?或者有更好的方法吗?

你可以这样做 -

class A(page):

    def test_auth(self):
        params = {
            'email': 'zzzm',
            'password': 'yyyy',
        }

        response = self.send_request(self.request_auth,
                                     request_type=self.request_type_post,                                         
        headers=self.header_content_type_x_www_form_urlencoded,
                                     data=params,
                                     need_headers=True)
        auth_header = {'Authorization': f"Bearer {response['headers']['x-api-token']}"}
        return auth_header


    def test_profile(self):
        auth_header = self.test_auth()
        response = self.send_request(self.request_profile,
                                     auth=auth_header,
                                     headers=self.header_accept_json
                                     )

或者像 -

一样把东西放在 init 里
class A(page):
    def test_auth(self):
        params = {
            'email': 'zzzm',
            'password': 'yyyy',
        }

        response = self.send_request(self.request_auth,
                                     request_type=self.request_type_post,                                         
        headers=self.header_content_type_x_www_form_urlencoded,
                                     data=params,
                                     need_headers=True)
        auth_header = {'Authorization': f"Bearer {response['headers']['x-api-token']}"}
        return auth_header

    def __init__(self, page):
        self.auth_header = self.test_auth()


    def test_profile(self):
        auth_header = self.auth_header
        response = self.send_request(self.request_profile,
                                     auth=auth_header,
                                     headers=self.header_accept_json
                                     )

将东西放入 __init__ 的好处是您可以在整个 class 中使用它。