1.对象=属性+方法 2.类名用大写字母开头,函数用小写字母开头 3.OO的特征 OO=Object Oriented面向对象
封装-信息隐蔽技术继承-子类自动共享父类之间数据和方法的机制 >>> list2=MyList() >>> list2.append (5) >>> list2.append (2) >>> list2.append(7) >>> list2.sort() >>> list2 [2, 5, 7] 多态-不同对象对同一方法有不同的响应 4.self是什么 类似于c++中的指针,如果说类是设计图纸,那么实例对象就是具体的房子,而self相当于门牌号 >>> class Ball: def setname(self,name): self.name=name def kick(self): print('我叫%s,该死的,谁踢我...'% self.name) >>> a=Ball() >>> a.setname('球A') >>> b=Ball() >>> b.setname('球B') >>> c=Ball() >>> c.setname('球C') >>> a.kick() 我叫球A,该死的,谁踢我... >>> c.kick() 我叫球C,该死的,谁踢我...5.魔法方法 init(self) 出现实例对象的时候,会自动调用此函数,进行初始化,称之为构造函数,当然,此函数也可传输一些参数 6.公有和私有 对象的属性和方法都是公有的 7.继承class DerivedClassName(BaseClassName):
import random as r class Fish: def __init__(self): self.x=r.randint(0,10) self.y=r.randint(0,10) def move(self): self.x-=1 print('我的位置是:',self.x,self.y) class Goldfish(Fish): pass class Carp(Fish): pass class Salmon(Fish): pass class Shark(Fish): def __init__(self): super().__init__() self.hungry=True def eat(self): if self.hungry: print('吃货的梦想就是天天有的吃') self.hungry=False else: print ('太撑了,吃不下了') >>> shark=Shark() >>> shark.eat() 吃货的梦想就是天天有的吃 >>> shark.eat() 太撑了,吃不下了 >>> shark.eat() 太撑了,吃不下了 >>> shark.move() 我的位置是: -1 9 >>> shark.move() 我的位置是: -2 9多重继承:class DerivedClassName(Base1,Base2,Base3):
8.组合:把类的实例化这一步骤放到一个新类里面,就将旧类与新类组合在一起
class Turtle: def __init__(self,x): self.num=x class Fish: def __init__(self,x): self.num=x class Pool: def __init__(self,x,y): self.turtle=Turtle(x) self.fish =Fish(y) def print_num(self): print ('水池里总共有乌龟 %d 只,小鱼 %d 条!'%(self.turtle.num,self.fish.num))9.绑定:Python严格要求方法需要有实例才能被调用,这种限制其实就是Python所谓的绑定概念。 10.issubclass(class,classinfo)
一个类被认为是其自身的子类classinfo可以是类对象组成的元祖,只要class与其中任何一个候选类的子类,则返回true 11.isinstance(object,classinfo)如果第一个参数不是对象,则永远返回false如果第二个不是类或者由类对象组成的元祖,会抛出一个TypeError异常 12.hasattr(object,name) 测定一个对象里面是否有指定的属性 getattr 得到属性值 setattr 设定一个属性 delsttr 删除一个属性