哈喽兄弟们,我们接着上篇继续学习面向对象。
面向对象化编程所有的实例对象和实例方法都必须以self作为第一个参数,文章内容接上一章:Python面向对象编程基础之面向对象思想和特点、类和对象。这个系列将会很详细的解释清楚Python面向对象编程这一编程思想是如何具体实现的。
一、Self参数
1.在定义完实例变量之后,实例方法时的第一个参数必须是self。但是self本身这个参数在python中并不是关键字,换成其他单词都是可以的。但是用的人多了,也就变成了我们约定俗成大家都能看懂的self,特指本身方法。
2.self在定义时需要定义,但是在调用时会自动传入。这里我们可以做个实验:
class close_attack:
attack_power=100
def power(self):
print("基础攻击力100")
solder=close_attack()
solder.power()
out:
基础攻击力100
我们并没有传入参数,但是却可以执行,说明该参数会自动调用。相当于C++中的this指针。
文接上述的例子,我们把类比作一个游戏中所有近战类角色通用模型,由类实例化后的角色才可以使用该角色。我们可以通过这个方法生成许多不同近战类型的角色,如先锋、近卫、重装类型的角色。而每个角色都有都有自己的技能,这个self就相当于自己的技能索引,有了self就可以使用自己的技能了。简单的来说,self代表的当前的实例对象本身,这样在调用实例方法等Python就知道哪个实例对象了:
这里我们可以做个实验演示:
class close_attack:
attack_power=100
def power(self):
print("%s基础攻击力100" % self)
solder1=close_attack()
solder1.power()
<main.close_attack object at 0x0000018901557C08>基础攻击力100
solder2=