python 类
# -*- coding: utf-8 -*- ''' 构造函数的作用是初始化实例变量 析构函数作用是实例销毁的时候调用, 可以在析构函数中做 关闭连接等操作 类中的方法必须有一个self 的参数, 掉用类方法的本质是:类.方法(实例): 比如: p1.sayName() => people1.sayName(p1) ''' ''' 简单的类 ''' class people1: #类变量 , 类没有实例化的时候就可以调用 n=123 list=[] #构造函数 def __init__(self,name,sex): #实例变量(静态属性),作用域是实例本身 self.name = name #设置私有属性 self.__sex = sex def getSex(self): return self.__sex #类方法(动态属性) def sayName(self): print("my name is :" ,self.name) def __del__(self): print("call del -- ") pass #在类初始化之前可以调用类变量 print(people1.n) #实例化生成一个对象 p1 = people1("xiaoQiang","man") p1.sayName() p2 = people1("wangcai","woman") #为 实例添加一个属性 p1.age = 25 print(p1.age) print(p1.getSex()) #删除一个属性 # del p1.age # print(p1.age) #实例中也可以调用类变量, #修改类变量在本实例中显示修改, 而在其他实例中没有被修改,其实本质就是在实例中添加一个属性 n #如果类属性是一个list 类型, 那么在p1中修改,在其他实例中也会发生改变 # p1.n=456 print(p1.name,p1.n) p1.list.append("aaa") print(p2.list)
多继承:
# -*- coding: utf-8 -*- ''' 经典类 class A: pass 新式类: class B(object): pass 新式类与经典类的一个差别就是多继承的时候(python2) , 新式类是按照广度优先进行继承, 经典类是按照深度优先进行继承 python3 都是按照广度优先进行继承 ''' class People(object): def __init__(self,name): self.name = name def eat(self): print("%s eating----"% self.name) def sleep(self): print("%s sleep----"% self.name) class Relation(object): def __init__(self): pass def makeFriends(self,obj): print("%s make Friend---%s" %(self.name , obj.name)) class Man(People,Relation): def __init__(self,name,sex): super(Man,self).__init__(name) self.sex = sex class Woman(People,Relation): def __init__(self,name,sex): super(Woman,self).__init__(name) self.sex = sex m1 = Man("xiaoQiang","Man") w1 = Woman("ruhua","Woman") m1.makeFriends(w1)
posted on 2017-11-21 09:37 gaizhongfeng 阅读(163) 评论(0) 编辑 收藏 举报