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 ...
随机推荐
- 暴力打表之hdu 2089
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 有两种方法: 1.数位DP算法 2.暴力打表——真是个好法子!!! 接下来是注意点: 1.一般这 ...
- python : No such file or directory
windows上写的python脚本,在linux上执行时报: No such file or directory 解决方法一# sed -i 's#\r##' mysqlchk.py 解决方法二脚本 ...
- 信息领域热词分析系统--java爬取CSDN中文章标题即链接
package zuoye1; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLExce ...
- Indexing the World Wide Web: the Journey So Far阅读笔记
文献文档用google搜索标题即可. term预处理:用空格切分,去除标点,去除撇号,归一化小写,去除变音符号,词干还原(?),去除停用词,挖掘词组. 索引选型工程最佳实践:term粒度.按doc分块 ...
- STM32 从M3到M4
一 考虑STM32不同系列移植的外设资源情况: STM32微控制器应用的移植和兼容性指南AN3364 二 M4的DSP/FPU的使用方法https://blog.csdn.net/electrocra ...
- B P5 第十三届北航程序设计竞赛预赛
https://buaacoding.cn/contest-ng/index.html#/188/problems 其实这题挺简单的. 注意到答案的大小最多是22 二分,check长度是mid的不同子 ...
- Java反射机制分析指南
一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...
- Spring boot-(1) Spring Boot快速开始
本系列博客将学习并运用Spring Boot, 尽量会涉及到Spring Boot的方方面面,且会参考Spring Boot的官方文档,相关英文书籍,以及相关博客等知识,争取做到详尽易懂. 1. Sp ...
- java.lang.ArrayIndexOutOfBoundsException: 160
项目突然出现这个问题java.lang.ArrayIndexOutOfBoundsException: 160,找了好大半天没有找出来哪里的问题,最后发现时fastjson.jar 版本太低了造成的, ...
- C#获取文件格式图标关联应用程序图标
class SystemIcon { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] public struct SHFIL ...