self是什么?什么時候加?什么時候不加?


Python里邊self倒底是什么?什么時候加self?什么時候不加?

  1. self是什么?

    • 如果你問別人大多人回答是: 指對象本身,然后噼里啪啦說一堆,然后聽完的你,仍然完全搞不清楚,什么時候變量前需要加self,什么時候不需要加self。造成很多人,已經怕了self,不停地測試,加self減self來測試代碼,或者干脆不知道要不要self,所有變量前面一律加self,這樣就能瞎貓碰死老鼠了,但不弄清楚,長期這樣做法有點悲劇。
  2. 所以不需要這么去想self代表對象本身,換個思維應該認為self是全局變量。

  • 如果變量前面加了self,那么在任何實例方法(非staticmethod和calssmethod)就都可以訪問這個變量了
#! /usr/bin/python3
     
class Test():
     """變量在函數內部"""
     
     def test_login(self):
          # 變量在函數內部
          self.word = "騎着烏龜趕豬"
     
     def common(self):
          # 打印會報錯
          print(self.word)
     
T = Test()
T.common()
     
***
     
#! /usr/bin/python3
     
class Test():
    """變量在函數外部,屬公共的"""
     
    word = "騎着烏龜趕豬"
         
    def test_login(self):
          # 正常打印
          print(self.word)
     
    def common(self):
          # 正常打印
          print(self.word)
     
     
T = Test()
T.common()
T.test_login()
  • 如果沒有加self,只有在當前函數內部才能訪問這個變量
#! /usr/bin/python3
   
class Test():
      """調用方法中的私有屬性"""
       
       def test_login(self):
           word = "騎着烏龜趕豬"
           # 正確打印
           print(word)
   
       def common(self):
           # 打印會報錯
           print(word)
   
T = Test()
T.test_login()
T.common()
  1. 類中方法如何調用

調用類中方法:self.方法名

#! /usr/bin/python3
      
class Test():
      """調用類中方法"""
      
      
      def test_login(self):
            print("調用登錄方法")
      
      def test_exit(self):
           self.test_login()
      
T = Test()
T.test_exit()

如果對軟件測試、接口測試、自動化測試、技術同行、持續集成、面試經驗交流。感興趣可以進到902061117,群內會有不定期的分享測試資料。
如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支持,你的點贊是我持續更新的動力。


免責聲明!

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



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