本文摘自php中文网,作者(*-*)浩,侵删。
self的意思是“自身”,python中代表类的实例,而非类。self只有在类的方法中才会有,独立的函数或方法是不必带有self的;self在定义类的方法时是必须有的。self名称不是必须的,你可以定义成a或b或其它名字都可以,但是约定成俗,可减少理解难度。
首先我们要搞明白Python的类中为要什么要用到self这个单词呢,为什么不用"zhangsan"、"lisi"这样的名字呢,这肯定有他的用意。
self代表类的实例,而非类。
1 2 3 4 5 6 7 |
|
执行结果如下:
1 2 |
|
从上面的例子中可以很明显的看出,self代表的是类的实例。而self.class则指向类。
类中的方法第一个参数必须是 self ,不然实例无法正确调用类中的方法,也就是说,如果方法中第一个参数不是 self(广义的),那么这个方法是没有任何价值的,因为实例无法调用它,一个无法被调用的方法真不知道有什么用。
注意:把self换成this,结果也一样,但Python中最好用约定俗成的self。
在继承时,传入的是哪个实例,就是那个传入的实例,而不是指定义了self的类的实例。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
运行结果如下:
1 2 3 |
|
解释:
运行c.cprt()时应该没有理解问题,指的是Child类的实例。
但是在运行c.pprt()时,等同于Child.pprt(c),所以self指的依然是Child类的实例,由于self中没有定义pprt()方法,所以沿着继承树往上找,发现在父类Parent中定义了pprt()方法,所以就会成功调用
以上就是python self什么意思的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
如何用Python客户端开发?用实例进行Python模块详解
json.loads是干嘛的?简单阐述json.loads Python的用法
关于Python中如何使用selenium模拟jquery滑动解锁的实例分析
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。