zoukankan      html  css  js  c++  java
  • 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)
    如果我失败了,至少我尝试过,不会因为痛失机会而后悔
  • 相关阅读:
    链表问题
    有关动态规划的LeetCode
    正则表达式匹配与自动机
    基于数据库范式的一点点想法
    html5 API
    Web鼠标事件
    webpack模块化原理
    Jquery数据缓存
    图片懒加载
    MySql存储过程的调试
  • 原文地址:https://www.cnblogs.com/tangcode/p/11252030.html
Copyright © 2011-2022 走看看