码迷,mamicode.com
首页 > 编程语言 > 详细

python什么时候加self,什么时候不加self

时间:2018-08-07 13:17:01      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:除了   login   Python一   cal   最好   res   stat   其他   span   

1、self是什么,一般都说指对象本身,这样说了没了用,说了后还是很难懂,因为这样说了后,仍然完全搞不清楚,什么时候变量前需要加self,什么时候不需要加self。

造成很多人,已经怕了self,不停地测试,加self减self来测试代码,或者干脆不知道要不要self,所有变量前面一律加self,这样就能瞎猫碰死老鼠了,但不弄清楚,长期这样做法有点悲剧。

 

2、所以不需要这么去想self代表对象本身,换个思维应该认为self是全局变量,如果变量前面加了self,那么在任何实例方法(非staticmethod和calssmethod)就都可以访问这个变量了,如果没有加self,只有在当前函数内部才能访问这个变量。

 

3、根据pep8,所有的加了self的变量,需要确保是在__init__中首次出现,这是因为和java不一样,python没有成员声明,python一下子很难知道有哪些成员变量,所以最好确保所有带self前缀的变量是在__init__中首次出现。这条规则可以使用pycahrm的静态检查来证实或者pylint工具来证明。

 

 

4、重中之重就是前缀带self的变量,就是在整个类的代码块里面类似是作为全局变量,这样想后就不会出现不知道要不要self或者瞎全加self。

 

5、错误的例子就是这样,比如unitetst用例里面:

def test_login(self):

     self.url = xxx

     self.resp = self.session.getself.url)

     self.text = self.resp.text

     self.status = self.resp.statuscode

 

要加这么多self干鸟。这些都是局部的,别的方法里面不需要访问这些变量,完全是需要去掉这些self。

 

除了session属性需要共用以外,其他都要去掉,不然造成很大的误导,会以为这些变量也需要在其他方法中去使用它。

python什么时候加self,什么时候不加self

标签:除了   login   Python一   cal   最好   res   stat   其他   span   

原文地址:https://www.cnblogs.com/ydf0509/p/9435677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!