class Cat: def eat(self): print("chiyu") def drink(self): print("heshui") tom=Cat() tom.name="Tom" tom.age=10 #可以直接添加属性
class Cat: num=0 #类属性 和所有的对象共享同一个属性 使用的时候可以用Cat.num def __init__(self,name,age): #初始化创建对象 先创建对象 然后把对象self传给__init__调用它 然后把创建对象给了tom self.name=name self.__age=age __age 定义私有属性(在属性前面加两个_) def __str__(self): #print tom对象的时候会调用 return "%s的年龄是:%d"%(self.name,self.age) def eat(self): print("chiyu") def drink(self): print("heshui") @classmethod 类方法 用来改变类属性 可以通过类名调用类方法 也可以用对象调用 def add_num(cls): cls.num=100 @staticmethod 静态方法 可以通过类名调用类方法 也可以用对象调用 def print_menu(): pass tom=Cat("tom",10) tom2=tom
del tom 为删除tom到所创建的对象Cat()的引用 本身Cat对象仍然存在 只有把所有的引用都删除(tom2) 才删除最终的对象,此方法为引用计数
继承:
class Animal: pass class Cat(Animal): 继承的方式 可以多继承 pass
方法重写 调用父类同款方法用super().bark() 或者父类名.父类方法名 Animal.bark()
多态:
class Animal: def bark(self): print("lala") class Cat(Animal): def bark(self): print("waowao") def introduce(temp): temp.bark() a=Animal() b=Cat() introduce(a) #会调用自身的bark introduce(b)
三要素(封装继承多态 Python既支持面向过程 也支持面向对象)