zoukankan      html  css  js  c++  java
  • 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,群内会有不定期的分享测试资料。
    如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

  • 相关阅读:
    orcle id和执行计划(转)
    mysql 授权
    nginx+php 安装手册
    为 MySQL 增加 HTTP/REST 客户端:MySQL UDF 函数 mysql-udf-http 1.0 发布
    Nginx提示502和504错误的解决方案
    error while loading shared libraries: xxx.so.x"错误的原因和解决办法
    lnmp memcache出问题
    Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
    Nginx代理与负载均衡配置与优化
    curl+ post/get 提交
  • 原文地址:https://www.cnblogs.com/zzpython/p/13377361.html
Copyright © 2011-2022 走看看