pycharm獲取函數的返回對象后,該對象方法無法自動補全的解決辦法


問題:

當對函數傳遞形參時,或者函數返回值是某個對象時,直接使用發現無法自動補全其自己攜帶的方法,這樣會非常降低開發效率

eg:

  

def get_verify_code(self, session):# 這個session是一個對象,當在函數中使用的時候,無法自動補全其攜帶的方法
 2         """
 3 
 4         :param session: 傳遞進來session對象
 5         :return: 返回的是響應response
 6         """
 7         return session.get(self.verify_url)
 8 
 9  def test01_logoin(self):
10         response = self.login_api.get_verify_code()
11         self.assertEqual("image/png", response.headers)# 這種情況就不會補全,我們獲取了上一個函數的返回值,返回值是一個response對象,但是pycharm無法識別 12         self.assertEqual(200, response.status_code)

解決辦法一:

  直接上圖:----用添加type hints(類型提示)來解決

 

 

 那么上段代碼添加類型提示的步驟如下:

 

def get_verify_code(self, session):# 1、將光標放在session處 2、點擊Alt+Enter 3、選擇specify type for the reference using annotation ... 4、按Enter后輸入類型 2         """
 3       
 4         :param session: 傳遞進來session對象
 5         :return: 返回的是響應response
 6         """
 7         return session.get(self.verify_url)
 8 
 9  def test01_logoin(self):
10         response = self.login_api.get_verify_code()#1、將光標放在此處 2、點擊Alt+Enter 3、選擇Add hint for... 4、按Enter后輸入類型
       # 給函數的返回值添加類型提示時 會自動跳轉到原函數進行添加
       self.assertEqual("image/png", response.headers) 12 self.assertEqual(200, response.status_code)

 

eg:添加類型提示后的代碼如下:

 1     def get_verify_code(self, session: requests.Session) -> requests.Response: # 這樣代碼就可以自動補全了,調用其返回函數就可以補全
 2         """
 3         :param session: 傳遞進來session對象
 4         :return: 返回的是響應response
 5         """
 6         return session.get(self.verify_url)
 7 
 8     def test01_logoin(self):
 9         response = self.login_api.get_verify_code()
10         self.assertEqual("image/png", response.headers)
11         self.assertEqual(200, response.status_code)

解決辦法二(推薦):

  在函數的注釋中給形參添加類型提示1 def get_verify_code(self, session) -> requests.Response:

2         """
3  類型提示 可以讓其自動補全 4  :type session: requests.Session 5  :param session: 傳遞進來session對象 6  :return: 返回的是響應response
       :rtype: requests.Response
7 """ 8 return session.get(self.verify_url)

 

解決辦法三:

直接在后面添加 類型提示也是可以的但是沒有上面的方法快捷,只需在原函數添加一次,以后每次調用都可以補全

 1 def get_verify_code(self, session: requests.Session): # 這樣代碼就可以自動補全了,調用其返回函數就可以補全
 2  2         """
 3  3         :param session: 傳遞進來session對象
 4  4         :return: 返回的是響應response
 5  5         """
 6  6         return session.get(self.verify_url)
 7  7 
 8  8     def test01_logoin(self):
 9  9         response = self.login_api.get_verify_code() #type: requests.Response 10 10         self.assertEqual("image/png", response.headers)
11 11         self.assertEqual(200, response.status_code)

請參考python中文網的type hints 類型提示解析:

https://www.pycharm.net.cn/docs/302.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM