调用方法有两种形式

实例调用

直接调用后序参数即可

类调用

调用时需要先加上实例

示例

class test1:
def pt(self,txt): #定义函数
test1.txt=txt
print(self.txt)
x=test1() #定义实例
x.pt('test') #实例调用
test1.pt(x,'test1') #类调用

定制被继承的方法

首先需要说明默认继承是你如果不去重载那么就是父类的,如果重载那么全部重来

比如继承构造如果不重载我们继承的就是父类的构造方法

示例

class test2:
def __init__(self,x,y):
test2.x=x
test2.y=y
def __str__(self):
return 'x=%d y=%d' %(test2.x,test2.y)
x1=test2(1,2)
class test3(test2):
def __str__(self):
return 'y=%d x=%d' %(test3.y,test3.x)
x2=test3(1,2)
print(x1)
print(x2)

但是我们如果想子类扩充一些父类的构造的话,按照原来的套路我们需要把父类的再写一遍而不是直接补充

这里我们可以定制被继承的方法

说的这么高大上实际上就是把被继承的方法复读一遍。。。。

示例

class test2:
def __init__(self,x,y):
test2.x=x
test2.y=y
def __str__(self):
return 'x=%d y=%d' %(test2.x,test2.y)
x1=test2(1,2)
class test3(test2):
def __init__(self,x,y,z):
test2.__init__(self,x,y)
test3.z=z
def __str__(self):
return 'y=%d x=%d z=%d' %(test3.y,test3.x,test3.z)
x2=test3(1,2,3)
print(x1)
print(x2)

这也可以用在别的地方

示例

class test2:
def __init__(self,x,y):
test2.x=x
test2.y=y
def pt(self):
print('x=%d y=%d' %(test2.x,test2.y))
x1=test2(1,2)
class test3(test2):
def __init__(self,x,y,z):
test2.__init__(self,x,y)
test3.z=z
def pt(self):
test2.pt(self)
print( 'z=%d' %(test3.z))
test2.pt(self)
x2=test3(1,2,3)
x1.pt()
x2.pt()

输出(省略x,y,z)

1 2

1 2

3

1 2

这种方法好像对于运算符重载来说么得用,好像因为运算符直接return?(存疑)

接口定义(目前太菜完全不理解为啥这么做)

在父类中定义一个预计要在子类中出现得对象函数

示例

class test4:
def pt(self):
self.pt1()
class test5(test4):
def pt1(self):
print('这是一个接口?')
x3=test5()
x3.pt()

首先在父类中定义了一个子类得pt接口输出用子类得pt1()

然后定义有pt1的子类

然后定义子类的对象

直接调用这个接口

python OOP(2)的更多相关文章

  1. Python OOP(1):从基础开始

    本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassName(object): """docstring for ClassNam ...

  2. <转>Python OOP(1):从基础开始

    转自  http://www.cnblogs.com/BeginMan/p/3510786.html 本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassNam ...

  3. Python OOP(面向对象编程)

    一OOP的作用 在Python中,类是面向对象设计(OOP)的主要工具.通过使用类这种工具,OOP可以: 1.分解代码,最小化代码的冗余. 2.通过定制现有的代码,来编写新的程序,而不用在原处进行修改 ...

  4. python>oop

    oop即Object Oriented programming,面向对象编程 何为编程:特定的语法+数据结构+算法 编程范式就是从经验中总结的套路: 面向过程编程 适用于简单的脚本,一次任务是极好的, ...

  5. javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点

    主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.re ...

  6. Python OOP面向对象

    一.什么是面向对象的程序设计 1.面向过程 程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是 ...

  7. Python OOP 面向对象

    1.Python实现OOP可以概括为三个概念: 继承:基于Python属性查找 多态:在x.method中,method的意义取决于x的类型 封装:方法和运算符实现行为,数据隐藏是一种惯例 2.委托: ...

  8. python oop培训文档里面的 正宗oop、多个函数间反复return传参、多个文件无限复制粘贴扣字、无效废物滑稽类4种方式的例子。(2)

    把文档里面说的几种范式发出来. 4种编程范式实现一个人吃喝拉撒长身体的代码.语法很简单,思想模拟了所有程序员写代码时候的代码规划设计想法. 0.我不反对复制粘贴的写法,可以百度搜索复制粘贴网上现有的, ...

  9. Python OOP知识积累

    目录 目录 前言 对象 类 面向对象 Python 面向对象编程三个基本特征 封装 继承 继承的作用 泛化与特化 实现继承的方式 多重继承 多态 方法多态 最后 前言 Python是一个功能非常强大的 ...

  10. python oop __slots__方法

    动态语言python 可以在程序运行的情况下给class加上功能.具体为 #引入一个 from types import MethodType #方法 #然后 s.set_age = MethodTy ...

随机推荐

  1. 李维对VCL理解的几个错误

    研读深入浅出VCL一书的时候,有不少地方被网友提出疑问,而且似乎是网友们正确.但这丝毫不动摇李维在大中华Delphi界的江湖地位,因为高手应该是对整个系统理解的高手,而不是对某一个疑问的高手.能花巨量 ...

  2. Eclipse 使用Anaconda python 解释器

    问题: ubuntu16.04 Anaconda 安装成功 Eclispe 写Python代码 无法使用 (pandas库等) 原因: Eclispe 此时的python解释器==>用的并不是A ...

  3. MQTT + apache-apollo服务器初学使用

    说明:MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通 ...

  4. Python基础 — NumPy

    NumPy--简介  Numpy(Numerical Python的简称)是一个由多维数组对象和用于处理数组的例程集合组成的库.  Numpy内部解除了Python的PIL(全局解释器锁),运算效率极 ...

  5. bzoj 1999: [Noip2007]Core树网的核【树的直径+单调队列】

    我要懒死了,所以依然是lyd的课件截图 注意是min{max(max(d[uk]),dis(u1,ui),dis(uj,un))},每次都从这三个的max里取min #include<iostr ...

  6. P3990 [SHOI2013]超级跳马

    传送门 首先不难设\(f[i][j]\)表示跳到\((i,j)\)的方案数,那么不难得到如下转移 \[f[i][j]=\sum\limits_{k=1}^{\frac n2}f[i-2k+1][j-1 ...

  7. 线段树+树状数组+贪心 HDOJ 5338 ZZX and Permutations

    题目传送门 /* 题意:不懂... 线段树+树状数组+贪心:贪心从第一位开始枚举,一个数可以是循环节的末尾或者在循环节中,循环节(循环节内部是后面的换到前面,最前面的换到最后面).线段树维护最大值,树 ...

  8. 启动tomcat报错:ImageFormatException

    启动某工程报错: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException 查找此类存在于jdk的rt ...

  9. 【转】mysql中select用法

    转自:http://blog.sina.com.cn/s/blog_a74f39a201013c3b.html 1.选择所有的记录 select * from table_name; 其中*表示表中的 ...

  10. C# 访问mongodb数据库

    1.引用四个mongodb动态库MongoDB.Bson.dll,MongoDB.Driver.Core.dll,MongoDB.Driver.dll,MongoDB.Driver.Legacy.dl ...