和其他语言一样,Python也有class和objects。 看Bucky Roberts的视频感觉Python的class和objects更好理解,下述代码为例:
比如我们有一个Enemy class,就像在游戏里一样,这个class就像是一个模板,Enemy类下有两个function,分别是attack()以及checkLife().
每次我们想call the function的时候,我们需要通过object来实现。每个object就像是一个class的copy (我想到了agent Smith,就好像class AgentSmith, 然后可以创建无数个agentSmith对象来)。 每一个对象都是独立的,我们通过这些个对象来实现它们的function.
#create the class Enemy, this is like a template
class Enemy:
life = 3
def attack(self):
print('Ouch!')
self.life -= 1
def checkLife(self):
print(self.life, 'life left')
#create objects, objects are separate individuals, each is like a copy of the class
enemy1 = Enemy()
enemy2 = Enemy()
enemy1.attack()
enemy1.attack()
enemy1.checkLife()
enemy2.checkLife()
class Parent:
def last_name(self):
print('Dufresne')
class Child(Parent):
def first_name(self):
print('Andy')
def last_name(self):
print('Robbins')
andy = Child()
andy.first_name()
andy.last_name()
class Mario:
def move(self):
print('Look, I am moving!')
class Mushroom:
def eat_mushroom(self):
print('See? I am bigger!')
def move(self):
print('This is me moving under mushroom!')
class BigMario(Mario, Mushroom):
pass
bigMario = BigMario()
bigMario.eat_mushroom()
bigMario.move()
运行结果如下,不同的继承顺序,执行function也会不一样。
1. move() function是执行的Mario里的
2. 下面的move() function是执行的Mushroom里的。
参考教程: theNewBoston
欢迎留言讨论