1.self是什么?
如果你问别人大多人回答是: 指对象本身,然后噼里啪啦说一堆,然后听完的你,仍然完全搞不清楚,什么时候变量前需要加self,什么时候不需要加self。造成很多人,已经怕了self,不停地测试,加self减self来测试代码,或者干脆不知道要不要self,所有变量前面一律加self,这样就能瞎猫碰死老鼠了,但不弄清楚,长期这样做法有点悲剧。
2.所以不需要这么去想self代表对象本身,换个思维应该认为self是全局变量。
如果变量前面加了self,那么在任何实例方法(非staticmethod和calssmethod)就都可以访问这个变量了
class Test():
"""变量在函数内部"""
def test_login(self):
# 变量在函数内部
self.word = "骑着乌龟赶猪"
def common(self):
# 打印会报错
print(self.word)
T = Test()
T.common()
class Test():
"""变量在函数外部,属公共的"""
word = "骑着乌龟赶猪"
def test_login(self):
# 正常打印
print(self.word)
def common(self):
# 正常打印
print(self.word)
T = Test()
T.common()
T.test_login()
如果没有加self,只有在当前函数内部才能访问这个变量
class Test():
"""调用方法中的私有属性"""
def test_login(self):
word = "骑着乌龟赶猪"
# 正确打印
print(word)
#Python小白学习交流群:711312441
def common(self):
# 打印会报错
print(word)
T = Test()
T.test_login()
T.common()
3.类中方法如何调用
调用类中方法:self.方法名
class Test():
"""调用类中方法"""
def test_login(self):
print("调用登录方法")
def test_exit(self):
self.test_login()
T = Test()
T.test_exit()