您的位置:首页 > 编程语言 > Python开发

python 类对象提供默认行为 实例对象 通过继承进行定制

2014-12-13 15:01 477 查看

类对象提供默认行为

class语句创建类对象并将其赋值给变量名:Python class语句也是可执行语句,执行时会产生新的类对象,并且将其赋值给class头部的变量名
class语句内的赋值语句会创建类的属性,class语句内的顶层的赋值语句会产生类对象中的属性,从技术来讲,class语句的作用域会变成类对象的属性的命名空间,就像模块的全局作用域一样,执行class语句后,类的属性可以由变量名点号运算获取object.name
类属性提供对象的状态和行为,类对象的属性记录状态信息和行为,可由这个类所创建的所有实例共享



实例对象是具体的元素:

向函数那样调用类对象会创建新的实例对象:每次类调用时,都会建立并且返回新的实例对象,实例代表程序领域中的具体元素
每个实例对象继承类的属性并且获得了自己的命名空间,由类所创建的实例对象是新的命名空间,一开始空的,但是会创建该实例的类对象内的属性
在方法内对self属性做赋值运算会产生每个实例自己的属性,对self的属性做赋值运算,会创建或修改实例内的数据而不是类内的数据

>>> class FirstClass :

def setdata(self,value):

self.data=value #self is the instance

def display(self):

print self.data

>>> one=FirstClass()

>>> two=FirstClass()

>>> one.setdata('one')

>>> two.setdata('two')

>>> one.display()

one

>>> two.display()

two

>>> FirstClass.addattr='comman'

>>> one.addattr

'comman'

>>> two.addattr

'comman'

类通过继承进行定制:

超类列在了类开头的括号中,要继承另一个类的属性,把该类列在class语句开头的括号中就可以了,含有继承的类称为子类
类从其超类中继承属性:当读取属性时,如果不存在于子类中,Python会自动搜索这个属性
实例会继承所有可读取的属性
每个object.attrbute都会开启新的独立搜索,Python会对每个属性取出表达式进行对类树的独立搜索,这包括在class语句外对实例和类的引用(X.attr)以及在类方法函数内对self实例参数属性的引用
逻辑的修改是通过创建子类而不是修改超类:在树中层次较低的子类中重新定义超类的变量名,子类就可以取代并且定制所继承的行为
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐