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实例参数属性的引用
逻辑的修改是通过创建子类而不是修改超类:在树中层次较低的子类中重新定义超类的变量名,子类就可以取代并且定制所继承的行为
相关文章推荐
- python实现通过shelve修改对象实例
- Spring代码实例系列-01:hellospring(通过xml文件以默认的方式进行setter注入)
- Python中类的定义、继承及使用对象实例详解
- Python面向对象编程(类和实例 访问限制 继承和多态 获取对象信息 实例属性和类属性)
- Python之NumPy(axis=0/1/2...)的透彻理解——通过np.sum(axis=?)实例进行说明
- 【python】详解类class的通过__slots__限制类实例对象的属性(七)
- Python 通过继承实现标准对象的子类
- Python数据分析中Groupby用法之通过字典或Series进行分组的实例
- python 详解类class的通过__slots__限制类实例对象的属性(七)
- Python中实例对象如何进行属性和方法调用原因分析
- 【再回首Python之美】【类】通过dir()和__dict__查看一个类的属性和一个实例对象的属性
- Spring代码实例系列-02:松耦合loose coupling(通过xml文件以默认的方式进行setter注入)
- Python中类的定义、继承及使用对象实例详解
- python实现通过shelve修改对象实例
- 深入学习Django源码基础3 - python提供的对象默认方法
- python 通过字符串调用对象属性或方法的实例讲解
- 通过实例学习Java对象的构造过程
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
- 面向对象设计三大原则(封装变化点,对接口进行编程,多使用组合而不是继承)
- 交集:通过使用默认的相等比较器对值进行比较生成两个序列的交集