您的位置:首页 > 编程语言 > Python开发

Python-self

2018-01-01 20:15 211 查看
Python中在定义类函数时,会有一个self参数,不是很清楚这个self参数的作用,特地在此理一下。

首先self不是必须的,不是必须的有两个含义:

self不一定要叫self,其他的名字也可以,但是按照惯例最好还是用self

self在大多数情况下是必须要加的,但是有一种例外,下面会讲到

self指向的是类的实例而不是类:

class test:
def a(self):
print(self)

p = test()
p.a()


<__main__.test object at 0x000001F0AB6725C0>


在大部分时候我们定义类函数时都要有self函数,否则会报错:

class test:
def a():
print(self)

p = test()
p.a()


TypeError                                 Traceback (most recent call last)
<ipython-input-4-2e3e6e4f67f8> in <module>()
4
5 p = test()
----> 6 p.a()

TypeError: a() takes 0 positional arguments but 1 was given


这是因为
p.a()
实际上相当于
test.a(p)


如果我们非要不定义self,那么只能这样使用:

class test:
def a():
print(__class__)

test.a()


<class '__main__.test'>


关于self的作用,我查的资料说self能避免非限定调用造成的全局变量,不是很理解这句话
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: