zoukankan      html  css  js  c++  java
  • python(面向对象设计)

    三大编程范式

    1.面向过程

    2.面向对象

    3.函数式编程

    例.对象建立,但只是单一的

    # -*- coding: utf-8 -*-
    people1={
        'name':'bob',
        'age':'10',
        'Gender':'man',
        'sport':'basketball'
    }
    
    people2={
        'name':'lily',
        'age':'12',
        'Gender':'men',
        'sport':'sing'
    }
    
    def do(people):
        print('%s like %s' % (people['name'],people['sport']))
    
    def gender(people):
        print('%s is a %s' % (people['name'],people['Gender']))
    
    do(people1)
    gender(people2)
    

     进一步完善

    # -*- coding: utf-8 -*-
    def peoples(name,age,gender,sport):
        def do(people):
            print('%s like %s' % (people['name'],people['sport']))
        def sex(people):
            print('%s is a %s' % (people['name'],people['gender']))
        def init(name,age,gender,sport):
            people={
                    'name':name,
                    'age':age,
                    'gender':gender,
                    'sport':sport,
                #行为
                    'do':do,
                    'sex':sex,
            }
            return people
        res=init(name,age,gender,sport)
    
        return res
    
    people1=peoples('bob','11','man','soccer')
    people1['do'](people1)
    people1['sex'](people1)
    

    类:把一类事物的相同的特征和动作整合到一起,是一个抽象的概念。

    对象:是基于类创建的一个具体的事物。是特征和动作整合到一起。

    例子.创建学校类

    特征:name,adder,type

    动作:考试,招生,管理

    简单版

    # -*- coding: utf-8 -*-
    
    def school(name,addr,type):
        def exam():
            print('------考试------')
    
        def enroll():
            print('------招生------')
    
        def administration():
            print('------管理------')
        sch={
                    'name': name,
                    'addr':addr,
                    'type':type,
                    'exam': exam,
                    'enroll': enroll,
                    'administration': administration
                }
        return sch
       
    
    school1=school('实验','光明路','公立')
    
    school1['exam']()
    school1['enroll']()
    school1['administration']()
    

     进一步加工

    # -*- coding: utf-8 -*-
    
    def school(name,addr,type):
        def exam():
            print('------考试------')
    
        def enroll():
            print('------招生------')
    
        def administration():
            print('------管理------')
        def intial(name,addr,type):
                sch={
                    'name': name,
                    'addr':addr,
                    'type':type,
                    'exam': exam,
                    'enroll': enroll,
                    'administration': administration
                }
                return sch
        return intial(name,addr,type)
    
    
    school1=school('实验','光明路','公立')
    
    print(school1)
    school1['exam']()
    school1['enroll']()
    school1['administration']()
    

     面向对象设计:用面向对象独有的语法class去实现

  • 相关阅读:
    为什么越来越少的人用jQuery
    远程工作是一种怎样的体验?
    JavaScript黑客是这样窃取比特币的,Vue开发者不用担心!
    原有vue项目接入typescript
    ES6核心特性
    强烈推荐10个值得订阅的国外技术周报
    jquery ajax超时设置(转载)
    Multiple “order by” in LINQ(转载)
    Cookies, Claims and Authentication in ASP.NET Core(转载)
    Json.NET序列化后包含类型,保证序列化和反序列化的对象类型相同(转载)
  • 原文地址:https://www.cnblogs.com/2018-1025/p/11992586.html
Copyright © 2011-2022 走看看