有过Java基础的对这个自然不陌生。只是有些区别,现在来讲一讲。
正常的写法:
1.
class Animal(object):
def run(self):
print('Animal is running...')
class Dog(Animal):
pass
class Cat(Animal):
pass
dog=Dog()
dog.run()
cat=Cat()
cat.run()
#输出结果
#Animal is running...
#Animal is running...
2.
class Animal(object):
def run(self):
print('Animal is running...')
class Dog(Animal):
def run(self):
print('Dog is running...')
class Cat(Animal):
def run(self):
print('Cat is running...')
dog=Dog()
dog.run()
cat=Cat()
cat.run()
#输出结果
# Dog is running...
# Cat is running...
静态语言vs动态语言
对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,将无法调用run()方法。
对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了:
实例属性和类属性
由于python是动态语言,根据类的实例可以任意绑定属性
给实例赋值可通过实例变量,或者self变量
class Student(object):
def __init__(self, name):
self.name = name
s = Student('Bob')
s.score = 90