Python里边的self到底是什么?什么时候加self?什么时候不加?

Time will tell(时间会证明一切).

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()

3、类中方法如何调用

调用类中方法:self.方法名

#! /usr/bin/python3
      
class Test():
      """调用类中方法"""
      
      
      def test_login(self):
            print("调用登录方法")
      
      def test_exit(self):
           self.test_login()
      
T = Test()
T.test_exit()
絮叨

对接口、自动化、软件测试零基础入门、python全栈、面试题感兴趣可以加入我们175317069一起学习,群内会有不定期测试资料链接发放喔。

如果文章对你有帮助,麻烦点个赞,感谢您的支持,你的点赞是我持续更新的动力。

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值