`

Python OOP Detail

 
阅读更多

data attribute


 

方法

 

调用超类构造函数


 

重写方法

 

interface

#Super 定义一个method函数以及在子类中期待一个动作的delegate
class Super:
    def method(self):
        print('in Super.method')    #Default behavior
    def delegate(self):
        self.action()               #Expected to be defined


#Inheritor 没有提供任何新的变量名,因此会获得Super中定义的一切内容
class Inheritor(Super):             #Inherit method verbatim
    pass


#Replacer 用自己的版本覆盖Super的method
class Replacer(Super):              #Replace method completely
    def method(self):
        print('in Replacer.method')


#Extender 覆盖并返回默认method,从而定制Super的method
class Extender(Super):              #Extend method behavior
    def method(self):
        print('starting Extender.method')
        Super.method(self)
        print('ending Extender.method')


#Provider 实现Super的delegate方法预期的action方法
class Provider(Super):              #Fill in a required method
    def action(self):
        print('in Provider.action')


if __name__ == '__main__':
    for instance in (Inheritor, Replacer, Extender):
        print('\n' + instance.__name__ + '...')
        instance().method()
    print('\nProvider...')
    x = Provider()
    x.delegate()

 测试结果:


 

抽象基类:assert、NotImplementedError



 

@abstractmethod

 

命名空间


 

Summary

抽象类是会调用方法的类,但没有继承或定义该方法,而是期待该方法由子类填补。当行为无法预测,非得等到更为具体的子类编写时才知道,通常可用这种方式把类通用化。OOP软件框架也使用这种方式作为客户端定义、可定制的运算的实现方法。

 

当简单赋值语句(x = y)出现在类语句的顶层时,就会把数据属性附加在这个类上(Class.x)。就像所有的类属性,这会由所有的实例共享。不过,数据属性并不是可调用的方法函数。

 

如果类定义自身的__init__构造函数,但是也必须启动超类的构建其代码,就必须手动调用超类的__init__方法。超类的构造函数式通过类名称来调用,手动传入self实例:Superclass.__init__(self, ...)

 

要增强继承的方法而不是完全替代,还得在子类中进行重新定义,但是要从子类的新版方法中,手动回调超类版本中的这个方法。也就是,把self实例手动传给超类版本的这个方法:Superclass.method(self,...)

 

 

 

 

 

 

  • 大小: 92.5 KB
  • 大小: 107.8 KB
  • 大小: 78.4 KB
  • 大小: 74.4 KB
  • 大小: 72.9 KB
  • 大小: 79.5 KB
  • 大小: 84.4 KB
  • 大小: 126.4 KB
  • 大小: 90.4 KB
分享到:
评论

相关推荐

    08-python-oop简介-使用 OOP 对森林火灾建模-对象

    在Python编程语言中,面向对象编程(Object-Oriented Programming,OOP)是一种重要的编程范式,它基于“对象”的概念。在这个模型中,数据和操作数据的方法被封装在一起,形成了一个独立的实体,即对象。这个教程将...

    coding_dojo_python_oop:编码Dojo Python OOP

    在这个"coding_dojo_python_oop"项目中,重点是使用Python语言进行面向对象编程(OOP)。面向对象编程是软件开发中一种强大的方法,它允许我们将复杂的问题分解为可管理和可复用的对象。 Python是一种高级编程语言...

    python_oop:Python OOP

    Vorkurs:Python OOP 本课程适用于初学者。 它是对面向对象编程的一般介绍,并带有python中的示例。 它由一个演示文稿组成,涵盖了OOP基础知识和后续工具开发所需的生物学背景。 code_chunks和python_oop.ipynb引入...

    PythonOOP:Python OOP解决方案

    Python面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它以对象为中心,通过类和对象来组织代码,提供封装、继承、多态等特性,极大地提高了代码的可读性、可维护性和重用性。...

    PythonOOP:我在修改Python OOP概念时制作的一些程序

    Python面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它允许开发者通过模拟现实世界中的对象来构建代码。在Python中,OOP主要包含四个核心概念:类(Class)、对象(Object)、继承...

    Python OOP游戏项目《长安联盟》的设计与实现

    这是一个名为“长安联盟”的团队项目,作为学生们的期末考试内容,该项目占课程成绩的40%,并要求利用Python面向对象编程概念创建一个基于中国历史传说的游戏环境,在这里学生需要建立不同的英雄类,并为他们设计...

    Python OOP类中的几种函数或方法总结

    在Python的面向对象编程(OOP)中,类是创建对象的基础,而类中的函数或方法则是实现对象功能的关键。本篇文章将总结Python OOP类中的四种主要函数或方法:实例方法、静态方法、类方法以及普通函数。 1. **实例方法...

    Python_OOP:解决了Softuni的Python OOP模块中的问题

    在本项目"Python_OOP:解决了Softuni的Python OOP模块中的问题"中,我们可以深入探讨Python面向对象编程(OOP)的关键概念和技巧。Softuni是一家知名的在线教育机构,其Python OOP课程旨在帮助学员掌握面向对象编程的...

    SoftUni-Python-OOP-February-2021:Python OOP

    课程详情Python OOP课程将教您面向对象编程(OOP)的原理,使用类和对象,使用面向对象的建模以及构建类层次结构。 将研究OOP的基本原理,例如抽象(接口,抽象类),封装,继承和多态性。 我们将介绍最常用的设计...

    PythonOOP:使用python代码回购以学习OOP

    "PythonOOP:使用python代码回购以学习OOP"这个项目可能是通过一系列的示例代码来教授如何在Python中实现面向对象编程。下面我们将详细讨论Python OOP中的核心概念和实践技巧。 1. 类(Class): 类是创建对象的...

    python-oop:Python面向对象编程文章目录和链接

    python-oop:Python面向对象的编程 有关所有新数据,请参见Wiki !!! 核心,但仍然是附加组件 通常会忘记 。 但是,在许多情况下,最好使用词典。 附加组件 traitlite-是的,这与traitlets不同! 和 。 原子 ...

    hangman-oop:在Python OOP中创建a子手游戏

    【标题】: "hangman-oop:在Python OOP中创建子手游戏" 在这个项目中,我们将探讨如何使用面向对象编程(OOP)的概念来实现经典的"子手"游戏。子手游戏是一种文字游戏,玩家需要通过猜测隐藏的单词来避免虚拟的"子手...

    PythonOOP

    Python面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它允许开发者通过创建对象来实现复杂的程序结构。在Python中,OOP主要基于四个核心概念:类(Class)、对象(Object)、继承...

    Python-OOP---February-2021:Python OOP课程中问题的解决方案

    Python面向对象编程(Object-Oriented Programming,OOP)是一种强大的编程范式,它通过类和对象的概念,使代码更具可读性、可维护性和复用性。在Python中,OOP主要涉及类的定义、对象的创建、封装、继承和多态等...

    monopoly:垄断Python OOP代码挑战

    垄断Python OOP代码挑战 跑 创建虚拟环境 python3.6 -m venv .venv 激活虚拟环境 source .venv/bin/activate 安装依赖 pip install -r requirements.txt 运行测试 pip install -e . pytest 运行模拟 TODO

    Python库 | oop-ext-0.3.2.tar.gz

    《Python库oop-ext-0.3.2:面向对象编程扩展》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,帮助我们高效地完成各种任务。今天我们要探讨的是名为"oop-ext-0.3.2"的Python库,它是一个针对面向...

    Python库 | oop-ext-0.2.0.tar.gz

    标题中的"Python库 | oop-ext-0.2.0.tar.gz"表明这是一个与Python相关的库,名为"oop-ext",版本号为0.2.0,并且它被压缩成一个tar.gz文件。这种格式是Linux和Unix系统中常见的归档和压缩方式,通常用于分发软件包。...

Global site tag (gtag.js) - Google Analytics