Python OOP 面向对象
1.Python实现OOP可以概括为三个概念:
- 继承:基于Python属性查找
- 多态:在x.method中,method的意义取决于x的类型
- 封装:方法和运算符实现行为,数据隐藏是一种惯例
2.委托:通常就是指控制器对象内嵌其他对象,而把运算请求传给那些对象。
3.类的伪私有属性:变量名压缩,一种把类所创建的变量名局部化的方式,主要是为了避免实例内的命名空间的冲突,当每个类说self.x时所得的值,
取决于最后一个赋值的是那个类。变量名
class C1:
def meth1(self):
self.x = 88
def meth2(self):
print(self.x) class C2(object):
"""docstring for C2"""
def metha(self):
self.x = 99
def methb(self):
print(self.x) class C3(C1,C2):
pass if __name__ == "__main__":
c3 = C3()
c3.meth1()
c3.metha()
c3.meth2() # 此时调用输出为99,会覆盖C1的x的值
class C1:
def meth1(self):
self.__x = 88
def meth2(self):
print(self.__x) class C2(object):
"""docstring for C2"""
def metha(self):
self.__x = 99
def methb(self):
print(self.__x) class C3(C1,C2):
pass if __name__ == "__main__":
c3 = C3()
c3.meth1()
c3.metha()
c3.meth2() # 此时调用输出为88
4.绑定方法与无绑定方法
对象点号运算,而没有用括号调用之前产生绑定方法
类点号运算之后,产生无绑定方法,但是调用之前必须明确的传入self参数
class Test:
def display(self,*arg):
print(arg) if __name__ == "__main__":
t1 = Test()
func = t1.display # 绑定方法
func([1,2,3]) # 调用时不必指出self参数,因为已经将方法绑定到对象t1 t2 = Test()
func2 = Test.display # 无绑定方法
func2(t2,[4,5,6]) # 调用时必须明确指定self参数
Python OOP 面向对象的更多相关文章
- Python OOP面向对象
一.什么是面向对象的程序设计 1.面向过程 程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是 ...
- python oop面向对象笔记
#coding:utf-8 class Person(object): def __init__(self,name,wage): self.name = name self.wage = wage ...
- 如何吃透Python的面向对象(OOP)
本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- Python OOP(1):从基础开始
本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassName(object): """docstring for ClassNam ...
- python学习------面向对象的程序设计
一 面向对象的程序设计的由来 1940年以前:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数 据.简单来说,就是直接编写 和 的序列来代表程序语言 ...
- 【转】Python之面向对象与类
[转]Python之面向对象与类 本节内容 面向对象的概念 类的封装 类的继承 类的多态 静态方法.类方法 和 属性方法 类的特殊成员方法 继承层级关系中子类的实例对象对属性的查找顺序问题 一.面向对 ...
- what's the python之面向对象
编程分为面向过程和面向对象,首先我们要了解什么是面向对象. 面向对象 面向过程就是我们之前学的内容,主要是函数式,其核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全 ...
- <转>Python OOP(1):从基础开始
转自 http://www.cnblogs.com/BeginMan/p/3510786.html 本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassNam ...
随机推荐
- django ORM 连表查询
db_index=True 如果设置该字段就可以设置索引 auto_now_add 代表设置创建时候的时间 auto_now 每次更新数据记录时会更新该字段 to_field 设置要关联表的字 ...
- eclipse中找不到base64包的解决方法
eclipse中找不到base64包的解决方法 2017年08月26日 11:05:26 yzp_leo 阅读数:634 标签: javaeclipsebase64更多 个人分类: 日记 ecli ...
- python学习:python文件中空格和换行符的捕获和文本文件的转存
0. 背景 之前公司的项目中,需要在嵌入式系统中实现一个http的网页端内容,由于项目历史遗留问题,公司是采用的将html文件转成c语言头文件的方式,每次修改页面端都需要从新编译一下程序,非常的繁琐. ...
- my.变身卡
中级 1620 (4--6级) 高级 8323 (7--9级) 赤炎: 1.老鼠精 135 / 150 2.白骨精 750 3.情丝娘子 264 / 294 4.沙和尚 500 5.九头虫 1835 ...
- PlayMaker 设置颜色 Set Materia lColor
1. 指定一个游戏对象,Color处设为红色,执行这个行为后就把游戏对象的材质变为了红色: 2. Color也可以使用一个弄好的Color类型的变量,如下图:Color处用了一个提前设置好的变量
- Unity Transform
public class PlayerControll : MonoBehaviour { Transform playerTransform; Animation playerAnimation; ...
- lscons 命令,设置当前控制台设备的名称写至标准输出
用途 将当前控制台设备的名称写至标准输出. 语法 lscons [ -s ] [ -a | -O ] lscons -b [ -s ] [ -a | -O ] lscons -d [ -s ] 描述 ...
- 批量处理标签属性中document.getElementsByName()的替代方案
背景 今天在逛知乎时候,看到一个JavaScript方面的问题: 最近在学习JavaScript DOM,就好奇地查阅资料,以及请教学长,得到下面解答: http://www.w3help.org/z ...
- 织梦更新列表页提示Fatal error: Call to a member function GetInnerText() on a non-object 解决方法
今天在做一个站时用到了自定义模型,遇到了些问题,在更新列表页时提示: Fatal error: Call to a member function GetInnerText() on a non-ob ...
- vue中添加echarts
方法一:全局引入echarts 步骤: 1.全局安装 echarts依赖. cnpm install echarts -- save 2.引入echarts模块,在Vue项目的main. ...