学习编程 2018-04-09
完善类的内容
示例:
#! /usr/bin/env python # coding =utf-8 #通常类名首字母大写 class Person(object): """ This is about a person #类文档 """ def __init__(self,name,lang="python"):#初始化函数,类被实例化的时候,要执行 self.name = name self.lang = lang self.email="[email protected]" def getName(self): #定义一个方法,第一个参数必须是self,而且必须写上 return self.name def color(self,col): print "{0} is {1}".format(self.name,col) p = Person("p1") name = p.getName() print name cc =Person("cc") cc_name =cc.getName() print cc_name cc.color("white") p.color("blacl") print p.lang print cc.lang print p.email print cc.email
类属性和实例属性
>>> class A(object): x =7 >>> A.x #x是类A 的属性,属于类属性 7 >>> foo =A() #将类实例化 >>> foo.x #x是实例foo的属性,叫实例属性 7 >>> foo.x +=1 #给实例属性加1 >>> foo.x 8 >>> A.x #类属性并没有因实例属性增加1,而发生变化 7<br />对于实例属性foo.x +1 本质是又建立了一个属性,把原来的覆盖了<br />实例属性不左右类属性。<br />类属性不受实例属性的影响,实例属性会受到类属性的左右 >>> del foo.x #删除实例属性 >>> foo.x #显示原始的属性 7 >>> foo.y =foo.x+1 #把实例属性赋给新的实例属性 >>> foo.y #新的实例属性发生变化 8 >>> foo.x #原始的实例属性没有发生变化 7 >>> A.x =A.x+1 #类属性加1,实例属性也发生了变化 >>> A.x 8 >>> foo.x 8 >>> class B(object): y=[1,2,3] >>> B.y [1, 2, 3] >>> bar =B() >>> bar.y [1, 2, 3] >>> bar.y.append(4) >>> bar.y [1, 2, 3, 4] >>> B.y [1, 2, 3, 4] >>> <br />#特例:实例属性发生改变,类属性也发生了改变。属性为列表