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一起学习,群内会有不定期测试资料链接发放喔。

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