代码之家  ›  专栏  ›  技术社区  ›  Manoj Kengudelu

如何在另一个方法中使用一个方法的值。我正在获取attributeError:'a'对象没有属性'auth'header'

  •  0
  • Manoj Kengudelu  · 技术社区  · 6 年前

    这是我的代码(单人甲级)

    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”对象没有属性“auth\u header”

    有人能帮我吗?我怎样才能在同一类的另一个方法中使用第一个方法生成的值?还是有更好的方法?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sushant    6 年前

    你可以做点什么-

    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
                                         )
    

    或者把事情放在初始状态-

    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__ 你可以在全班使用它。