python面向对象---用函数实现面向对象原理

类的定义:一个抽象的概念,保存一些共有的属性和特征
#对象:对象代表具体事物的特征功能,是类的实例

#面向对象程序设计 通过函数实现面向对象设计
def dog(name,type,gender):
    def jiao(dog1):
        print("你看[%s]狗再叫" % dog1["name"])
    #函数的局部作用域
    def sleeping(dog1):
        print("你看[%s]的类别" %dog1["type"])

    #初始化参数
    def init(name,type,gender):
        dog2={
            "name":name,
            "type":type,
            "gender":gender,
            "jiao":jiao,#将函数名作为键值传入
            "sleeping":sleeping
        }
        return dog2
    return init(name,type,gender)

d1=dog("小黄","中华田园犬","公")
d1[‘jiao‘](d1)
#类:把一类事物相同的特征和动作整合到一起就是类,类是一个抽象的概念

#对象:就是基于类创建的一个具体事物,一个具体的事物具体的存在,,也是特征和动作整合到一块#对象是由类产生的,  实例化:由类产生对象的过程叫做实例化#

#学校类#特征: name addres type#动作: 考试,招生,开除学生

class School:    #school1={"name":"oldboy","addres":"雁江","type":"私立学校"}

    def __init__(self,name,addres,types):        self.name=name        self.addres=addres        self.types=types

    def test(self):        print("%s学校正在考试" % self.name)

    def join_student(self):        print("%s 正在招生" %self.types)

bob = School("oldboy","阳江","私立学校")print(bob.__dict__)bob.test()bob.join_student()

#通过函数实现面向对象设计def school(name,addres,type):

    def init(name,addres,type):        school1={"name":name,                 "addres":addres,                 "type":type,                 "test":test,                 "join_student":join_student}        return school1

    def test(school_only):        print("%s 学校在考试" %school_only[‘name‘])

    def join_student(school_only):        print("%s 招生中" %school_only[‘type‘])

    return init(name,addres,type)

s1=school("oldboy","中国",‘培训学校‘)print(s1,s1[‘name‘])s1[‘test‘](s1)

原文地址:https://www.cnblogs.com/tangcode/p/11252030.html

时间: 2024-11-04 08:53:32

python面向对象---用函数实现面向对象原理的相关文章

python面向对象super函数

python面向对象super函数 待办 python面向对象可以多继承,同时集成的两个类继承自同一个父类的时候初始化问题,提前定义初始顺序,如果有相同的就按顺序初始化,不要把super理解成父类 https://blog.csdn.net/robinjwong/article/details/48369615 原文地址:https://www.cnblogs.com/lishikai/p/12382320.html

python运维开发(七)----面向对象(上)

内容目录: 面向对象应用场景 类和对象的创建 类中的__init__构造方法 self理解 面向对象的三大特性:封装.继承.多态 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. 面向对象应用场景 当某一些函数具有相同参数时,可以

python 学习 [day7]面向对象

编程模式概念 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向对象的三大特性 一.封装 第一步:将内容封装到某处 class Teacher: #定义了一个Teacher对象 #__init__ 构造方法,在创建对象时会自动执行类中的构造方法 def __init__(self, favor, name, age): #self类中的所有方法必须包含self参数,sel

Python基础(11)--面向对象1

面向对象设计与面向对象编程的关系 面向对象设计(OOD)不会特别要求面向对象编程语言.事实上,OOD 可以由纯结构化语言来实现,比如 C,但如果想要构造具备对象性质和特点的数据类型,就需要在程序上作更多的努力.当一门语言内建 OO 特性,OO 编程开发就会更加方便高效.另一方面,一门面向对象的语言不一定会强制你写 OO 方面的程序.例如 C++可以被认为“更好的C”:而 Java,则要求万物皆类,此外还规定,一个源文件对应一个类定义.然而,在 Python 中,类和 OOP 都不是日常编程所必需

python 学习笔记9(面向对象)

面向过程.函数式.面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象(Object Oriented Programming,OOP):对函数进行分类和封装,让开发“更快更好更强... 面向过程 是用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. 函数式编程 增强代码的重用性和可读性 面向对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对

Python系列之反射、面向对象

一.反射 说反射之前先介绍一下__import__方法,这个和import导入模块的另一种方式 1. import commons 2. __import__('commons') 如果是多层导入: 1. from list.text import commons 2. __import__(' list.text.commons',fromlist=True) #如果不加上fromlist=True,只会导入list目录 反射即想到4个内置函数分别为:getattr.hasattr.setat

比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?

一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 –  比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模型:封装 (1)  访问控制机制: C++提供完善的访问控制机制,分别是: public,protected和private. private, public, protected 访问标号的访问范围 public 可访问 1.该类中的函数 : 2.子类的函数: 3.其友元函数访问:4.该类的对象访

(一)Python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

面向对象: 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型 软件设计而来的.面向对象编程使程序的扩展性更强.可读性更好,使的编程可以像搭 积木一样简单. 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式 更加接近人的思维,从而大大提高了编程的效率. Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向 对象的基本功能,例如:继承.多态.封装等. Python中,一切皆对象.我们在前面学习的数据类型

PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法

PHP 的异常处理.错误的抛出及回调函数等面向对象的错误处理方法: http://www.jb51.net/article/32498.htm http://www.cnblogs.com/hongfei/archive/2012/06/10/2544047.html