Python 进阶 - 面向对象】的更多相关文章

Python的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计…
Python 面向对象 面向过程 把完成某个需求的所有步骤,从头到尾逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个函数 最后完成的代码,就是顺序地调用不同的函数 面向过程特点: 注重步骤过程,不注重职责份工 如果需求复杂,代码很复杂 开发复杂项目,没有固定套路,开发难度大 面向对象特点 注重对象和职责,不同的对象承担不同的职责 更加适合对复杂需求变化,时专门应对复杂项目开发,提供的固定套路 需要在面向过程基础上,再学习一些面向对象语法 类,对象 类是图纸,是模板 对象是根据图纸制作…
6.类属性和实例属性名字冲突怎么办 修改类属性会导致所有实例访问到的类属性全部都受影响,但是,如果在实例变量上修改类属性会发生什么问题呢? class Person(object): address = 'Earth' def __init__(self, name): self.name = name p1 = Person('Bob') p2 = Person('Alice') print 'Person.address = ' + Person.address p1.address = '…
1.初始化实例属性 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' #定义Person类的__init__方法,除了接受 name.gender 和 birth 外,还可接受任意关键字参数, #并把他们都作为属性赋值给实例. class Person(object): def __init__(self,name,gender,age,**kw): self.name = name self.gender…
鉴于昨天被类和函数折腾得晕头转向,今特把类的知识翻出来温习. 1.定义类并创建实力对象 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' #定义Person类,并创建出两个实例,打印实例,再比较两个实例是否相等. class Person(object): pass ming = Person() hong = Person() print ming print hong print ming == hong…
Python对象中一些方法 一.__str__ class Teacher: def __init__(self,name,age): self.name=name self.age=age self.courses=[] def teach(self): print('%s teach' %self.name) def __str__(self): return '<name:%s age:%s>' %(self.name,self.age) class Course: def __init…
python类的继承原理 一.类的继承顺序 class A(object): def test(self): print('from A') passclass B(A): # def test(self): # print('from B') passclass C(A): # def test(self): # print('from C') passclass D(A): # def test(self): # print('from D') passclass E(B): # def t…
类的成员 类的成员可以分为三类:字段.方法.属性 一:字段: 普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同 普通字段属于对象 静态字段属于类 字段的定义和使用 class Province: # 静态字段 country = '中国' def __init__(self,name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('北京') print obj.name # 直接访问静态字段 print…
1.方法也是属性 我们在 class 中定义的实例方法其实也是属性,它实际上是一个函数对象: class Person(object): def __init__(self, name, score): self.name = name self.score = score def get_grade(self): return 'A' p1 = Person('Bob', 90) print p1.get_grade # => <bound method Person.get_grade o…
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__() 和 __deltattr__()这三个通过属性的方式的三个方法 还有__getitem__(), __setitem__() 和 __delitem__()这三个函数, 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 在实现__setitem__()的时候仍然需要使用__dict__来…