类属性和实例属性
类属性:类对象所拥有的属性,他被该类的所有实例对象所拥有。也可以使用类对象或实例对象方法,类属性只能通过类调用修改,如果使用对象修改则是重新创建了一个同名属性而已
class Dog(object):
number = 10
class WangCai(Dog):
pass
class XiaoHei(Dog):
pass
dog = Dog();
Dog.number = 100
print(dog.number)
多态
多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同方法,可以产生不同的结果
class Dog(object):
def chifan(self):
pass
class WangCai(Dog):
def chifan(self):
print("旺财在吃饭")
class XiaoHei(Dog):
def chifan(self):
print("小黑在吃饭")
class Person(object):
def print_info(self, dog):
dog.chifan()
wangcai = WangCai()
xiaoihei = XiaoHei()
person = Person()
person.print_info(wangcai) # 多态实现调用旺财吃饭方法
person.print_info(xiaoihei) # 多态实现调用小黑吃饭方法
静态方法
静态方法需要通过装饰器@staticmethod来修饰,静态方法即不需要传递实例对象(形参没有self/cls)
class Dog(object):
@staticmethod
def chifan():
print("这是一个静态方法")
Dog.chifan()
Dog().chifan()
作者:阿超
原创公众号:『Python日常笔记』,专注于 Python爬虫等技术栈和有益的程序人生,会将一些平时的日常笔记都慢慢整理起来,也期待你的关注和阿超一起学习,公众号回复【csdn】优质资源。